Laravel Forge 的“快速部署”功能为你的团队提供了无缝的推送至部署体验。每当将新代码推送到已部署分支时,Forge 都会启动新的部署。这可确保你的网站始终运行项目的最新代码。Forge 还将在“部署”表中显示提交信息,以便你可以跟踪部署的内容以及部署时间。
遗憾的是,通过“部署触发器”URL 触发部署或使用自定义源代码控制提供程序的项目无法充分利用此功能 - 直到目前为止。
为自定义提供程序改进快速部署
Forge 上许多使用自定义源代码控制提供程序的网站实际上使用第一方支持的 git 提供程序(即 GitHub、GitLab 或 Bitbucket)作为其源代码主机,因为这样做使具有复杂项目访问要求的团队能够部署未包含在其 Forge 链接源代码控制帐户中的存储库。
对于这些网站,Forge 现在将检测第一方支持的 git 提供程序,并建议通过提供程序的原生 Webhook 功能设置 Webhook。
设置完成后,当 Forge 从 GitHub、GitLab 或 Bitbucket 接收“推送”Webhook 时,现在将检测提交信息并将其填充到部署表中。FORGE_DEPLOY_COMMIT
、FORGE_DEPLOY_AUTHOR
和 FORGE_DEPLOY_MESSAGE
环境变量也将填充,以便在网站的部署脚本中使用。
手动提供提交详细信息
对于使用完全不同的源代码控制提供程序或从 CI 触发部署的网站,Forge 无法知道提交哈希、作者、分支或消息。这就是为什么我们推出了通过部署触发器 URL 中的查询参数将此信息传递到 Forge 的功能。
Forge 引入了 4 个保留查询参数,你可以使用它们来传递此信息
-
forge_deploy_branch
:包含提交的分支。仅当分支与网站当前部署的分支匹配时,Forge 才会触发部署。 -
forge_deploy_commit
:提交的哈希。这将在“部署”表中可见,并作为部署脚本中的FORGE_DEPLOY_COMMIT
环境变量提供。 -
forge_deploy_author
:提交的作者。这将在“部署”表中可见,并且在部署脚本中可用作FORGE_DEPLOY_AUTHOR
环境变量。 -
forge_deploy_message
:提交消息。这将在部署脚本中可用作FORGE_DEPLOY_MESSAGE
环境变量。
例如,在 CI 脚本中,您可以在调用部署触发器 URL 时将提交消息“WIP”传递给 Forge
COMMIT_MESSAGE="WIP"
curl "https://forge.laravel.net.cn/servers/676709/sites/1968614/deploy/http?token=xxxx&forge_deploy_message=$COMMIT_MESSAGE"
我们希望这些改进能使使用自定义源代码控制提供程序和通过 CI 部署变得更加轻松。如果您对我们如何改进与 Forge 的自定义集成有任何进一步的建议,我们很乐意倾听。