停止 GitHub Actions 中已运行的工作流/作业

dan*_*1st 8 continuous-integration github github-actions

我已经使用 GitHub Actions 设置了 CI。我的一个工作流程是由push事件触发的,但它(或该工作流程的作业)不应同时在多个实例上运行。

是否可以创建一个停止其他工作流程(或作业或不允许工作流程/作业并行运行)的作业?

我宁愿取消“旧”工作,而不是需要完成“新”工作,直到“旧”工作完成。

理想情况下,我还想在最后运行一个作业来完成“旧”作业。(〜保存未完成的状态)。这可以(但不一定)与“新”作业并行运行。

[注意] 我想取消另一个工作流程中的作业,或者取消另一个工作流程,而不是同一工作流程中的另一个作业。

A.C*_*han 12

现在您可以使用 Github Actions 的官方并发支持(但仍处于测试阶段

https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency

工作流程和作业均受支持!

concurrency: 
  group: ${{ github.head_ref }}
  cancel-in-progress: true
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,如果您想根据 PR 而不是整个项目取消,请使用 `github.ref` 而不是 `github.head_ref`。 (3认同)