erdmenchen / laravel-bitbucket-deploy
通过Bitbucket管道和envoyer部署您的Laravel应用程序
Requires
- php: ^8.2
- illuminate/support: ^10.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-21 11:46:43 UTC
README
通过bitbucket pipelines和envoyer部署laravel应用程序。
重要
请确保您的项目(迁移!)按预期工作(测试!),因为在部署过程中没有备份机制!
不要只部署到生产环境,总是先在测试环境中测试版本!
先决条件
- Bitbucket账户
- 有可用的Bitbucket管道构建分钟(免费计划每月有50分钟)
- 具有SSH访问权限的主机
安装
您可以通过运行以下命令轻松使用Composer安装此软件包
composer require erdmenchen/laravel-bitbucket-deploy
安装完成后,运行以下命令以安装所有必需的资产
php artisan vendor:publish
Bitbucket配置
为了在Bitbucket中获得构建和部署管道,您需要在您的Bitbucket存储库中执行以下步骤
- 启用管道
- 添加以下存储库变量:
DEPLOY_HOST
和DEPLOY_USER
- 创建一个新的SSH密钥,将您的宿主添加到已知的宿主并复制公钥到您的托管
- 创建以下部署环境和为每个设置变量
DEPLOY_PATH
- 测试
- 生产
主机配置
部署脚本需要在以下文件夹结构上运行,以便在Web托管上工作
- 部署目标文件夹(例如
cool_website_staging
)- .env(Laravel环境配置文件)
- releases(每个部署将由脚本放在这里,每个部署都有一个唯一的文件夹)
- storage(Laravel存储文件夹)
- framework/sessions
- framework/views
- framework/cache
在每次部署期间,通过符号链接将.env
文件和storage
文件夹引用到当前构建文件夹。此外,在部署文件夹中创建或更新符号链接current
,该链接指向最新的构建文件夹。
要始终让Web服务器指向最新的版本,只需创建一个指向current
符号链接的符号链接即可(例如cool_website.com
-> cool_website_staging/current/public
。在部署期间无需编辑它。它始终指向最新的版本。
要求
此软件包有以下要求
- PHP 7.3或更高版本
- Laravel 6.0或更高版本
它是如何工作的
此软件包在您的Laravel项目中构建了Bitbucket管道脚本和Laravel Envoyer脚本。
当触发新的管道运行时(通过git提交或手动触发)会执行以下步骤的完整CI/CD(持续集成/持续交付)构建
- 获取源代码并安装PHP依赖项(
构建PHP
) - 运行
phpunit
并收集结果 - 在任何失败的测试时停止(测试PHP
) - 通过npm安装javascript依赖项并构建UI资产(
构建资产
) - 部署到测试/生产 - 通过ssh连接到托管并推送构建(
部署
)- 创建包含原始触发提交详细信息的清单文件
- 创建指向
.env
和storage
的符号链接 - 检查 Laravel 健康状态(运行
php artisan --version
) - 通过更新
current
符号链接来激活构建 - 优化、迁移和清理 Laravel 项目
最后一步(步骤 4)仅在从 develop
或 master
分支触发时执行。功能分支仅进行构建,不会进行部署。
许可证
GNU 通用公共许可证 v3.0。请参阅许可证文件获取更多信息。