在Vercel上安全部署,无需合并队列

在Vercel上安全部署,无需合并队列

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

使用Vercel可以加快应用程序的部署速度,避免合并队列带来的延迟。禁用自动推广后,开发者可以在生产部署完成后进行额外检查,确保代码质量,从而更快速、安全地将代码推向生产环境。

🔎

延伸解读

合并队列的代价:重复工作与串行等待

文章指出,合并队列会强制在最新 HEAD 上重新运行 CI 检查,导致同一提交至少被测试两次;若队列中有其他提交,还可能重复更多次。同时,多个开发者的提交必须串行测试,即使彼此无关,也会拉长合并时间。这种机制在 monorepo 中尤为明显,因为提交间的人为依赖会拖慢整体合并速度,影响开发者生产力。

Vercel 的解法:延迟生产推广,插入自定义检查

Vercel 允许禁用生产部署的自动推广。当主分支有新提交时,Vercel 仍会自动构建生产部署,但不会立即将其推广到生产域名,而是等待开发者通过 CLI、API 或 UI 手动触发推广。这为在构建完成与用户可见之间插入额外检查(如集成测试、QA)创造了空间,同时保留了自动部署的便利。

安全移除合并队列:用部署后检查替代合并前串行

借助延迟推广,团队可以安全移除合并队列。生产部署完成后,Vercel 会发送 deployment_status 事件,CI 系统可监听并运行必要检查,全部通过后再执行 vc promote 将部署推广到生产。这样,检查始终在用户看到部署前运行,开发者无需反复同步 HEAD 或等待队列。即使有提交合并后 CI 失败,也可在到达生产前回滚。

❓

Q&A

Vercel如何加快应用程序的部署速度?

Vercel通过避免合并队列带来的延迟,加快应用程序的部署速度。

禁用自动推广后,开发者可以做什么?

禁用自动推广后,开发者可以在生产部署完成后进行额外检查,以确保代码质量。

合并队列对开发者的影响是什么?

合并队列会导致重复工作和长时间的合并等待,影响开发者的生产力。

如何在Vercel上安全地移除合并队列?

通过在生产部署完成后手动控制何时将部署推广到生产环境,可以安全地移除合并队列。

Vercel的工作流程如何确保代码质量?

Vercel允许在生产部署完成后运行额外的检查,确保在用户看到部署之前始终运行检查。

使用Vercel部署后,如何推广到生产环境?

在Vercel中,完成生产部署后,可以通过CLI、API或UI手动指示推广到生产环境。

🏷️

标签

➡️

继续阅读