目前我们的工作流程是在推送部署时触发的:
concurrency: prod
on:
push:
jobs:
test-deploy:
environment: prod
test-deploy
作业需要手动批准,因此处于待处理状态,如作业 #1。如果我再进行两次提交 b 和 c,这不会触发新的部署(由于待处理的 #1),然后取消作业 #1,会发生什么情况?它会触发提交 b 的新部署作业还是最新提交 c 的部署作业吗?
如果您分别再推送两个提交,它实际上应该启动 2 个新的工作流程运行。在这种情况下,您将有 3 个工作流程运行待处理并等待手动批准。
为了避免这种行为,我建议在工作流程级别使用并发,以保证当新提交推送到分支时取消先前的“正在进行的”运行。
这样,只需手动批准最新的运行即可进行部署。
因此,您的工作流程将如下所示:
on:
push:
branches:
- your-branch-that-trigger-deploy
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
deploy:
environment: prod
steps:
...