我知道 GitHub Action 手动触发是一个讨论非常多的问题,手动审批的讨论较少,但仍然存在于社区中。
我有一个问题想问那些使用 Github 操作进行 CD 目的的人。
如您所知,Bitbucket、Gitlab、Azure Devops 等都有一个功能手动批准,这意味着管道可以到达流程中的某个步骤,例如:构建 -> 测试 -> 部署到暂存。
下一步是部署到生产环境,但需要手动批准或触发。所以我的问题是,你们中是否有人使用相同的信息(分支名称、相同的测试结果)在 GitHub 操作中实现了该功能,而无需再次运行整个管道? (这就是为什么我还没有将我们从 Bitbucket 迁移到 GitHub 的原因)
谢谢您的回答
最近,GitHub 团队宣布了Environments 处于测试阶段。通过此功能,您可以将手动批准添加到 CI/CD 中。
但是,私有存储库存在限制 - 只有GitHub Enterprise服务计划可以在私有存储库中使用环境。
因此,在 GitHub 中,有两种方法可以手动批准部署。
我想解决您的实际问题:您可以运行工作流程的一部分而不运行所有其他部分吗?
您也许可以使用
workflow_dispatch
和 input
来设计一些您想要从哪个阶段开始的东西。不过这个想法对我来说有点笨拙。
我认为更可靠的答案可能是将您的工作流程分为两部分:CI 工作流程和可重用 CD 工作流程。
在您需要的情况下,CI 工作流程可以在适当的时候调用 CD 工作流程。
通过单独的 CD 工作流程,如果您愿意,您还可以仅运行 CD 流程。
因此,您的 CD 工作流程将有一个
workflow_call
触发器,并由 CI 流程调用;它还会有一个workflow_dispatch
触发器,可以手动启动。
我正计划为我与客户一起构建的管道执行此操作。如果我记得的话,我会回到这里分享任何现实世界的学习。