配置GitHub Actions可实现Laravel项目自动化部署,通过定义deploy.yml工作流,在代码推送到main分支时自动执行测试、构建并部署至服务器。

使用 GitHub Actions 实现 Laravel 项目的自动化部署,可以大幅减少手动操作,提升开发效率。整个流程包括代码推送后自动运行测试、构建项目,并将代码安全地部署到服务器。下面介绍具体实现方法。
配置 GitHub Actions 工作流文件
在 Laravel 项目根目录创建 .github/workflows/deploy.yml 文件,定义 CI/CD 流程。以下是一个典型的工作流示例:
name: Deploy Laravel Appon:push:branches: [ main ] # 监听 main 分支的推送
jobs:deploy:runs-on: ubuntu-lateststeps:
name: Checkout codeuses: actions/checkout@v4
name: Setup PHPuses: shivammathur/setup-php@v2with:php-version: '8.1'extensions: mbstring, dom, curl, openssltools: composer:v2
name: Install dependenciesrun: composer install --no-interaction --optimize-autoloader
name: Run testsrun: php artisan test
name: Deploy via SSHuses: appleboy/scp-action@v0.1.6with:host: ${{ secrets.HOST }}username: ${{ secrets.USERNAME }}password: ${{ secrets.PASSWORD }}port: 22source: "."target: "/var/www/html/my-laravel-app"strip_components: 1
该工作流会在每次推送到 main 分支时触发,执行代码检出、PHP 环境搭建、依赖安装、测试运行,并通过 SCP 将代码复制到远程服务器。
设置服务器环境与部署脚本
确保目标服务器已配置好 Laravel 所需环境(如 Nginx、PHP、MySQL、Composer 等)。部署完成后,通常需要执行一些 Artisan 命令,例如缓存优化或数据库迁移。
可以在部署后添加 SSH 执行命令的步骤:
- name: Run remote commands uses: appleboy/ssh-action@v0.1.10 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} port: 22 script: | cd /var/www/html/my-laravel-app composer install --optimize-autoloader --no-dev php artisan config:cache php artisan route:cache php artisan view:cache php artisan event:cache这样可以确保部署后应用处于高性能状态。
配置 GitHub Secrets
为了安全,服务器登录信息不应写在代码中。需在 GitHub 仓库的 Settings > Secrets and variables > Actions 中添加以下密钥:
HOST: 服务器 IP 或域名USERNAME: SSH 登录用户名(如 ubuntu)PASSWORD: 用户密码,或使用 SSH Key 更安全
若使用 SSH 私钥认证,可添加 KEY 密钥,并在 action 中使用 key 参数代替 password。
优化与注意事项
实际使用中可进一步优化:
只部署必要文件(排除 tests、.env、node_modules 等),可通过 .gitattributes 配置 export-ignore使用 Laravel Forge 或 Envoyer 可更方便地管理部署流程结合 Cache Action 提升依赖安装速度设置失败通知(如邮件或 Slack)以便及时响应问题
基本上就这些。只要配置好 workflow 文件和服务器环境,Laravel 的 GitHub Actions 自动化部署就能稳定运行,让上线变得简单可靠。
以上就是laravel如何使用GitHub Actions实现自动化部署_Laravel GitHub Actions自动化部署方法的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/194205.html
微信扫一扫
支付宝扫一扫