我遇到了拦截器,我确信其他人一定也遇到过这个问题,所以只需检查是否有任何解决方法。
这是一个 Github 工作流程示例
name: Test Build
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
app-1:
runs-on: ubuntu-latest
steps:
- name: App-1
run: echo "test1"
app-2:
runs-on: ubuntu-latest
steps:
- name: App-2
run: echo "test1"
现在,如果我多次提交,它将触发多个构建,这些构建将相互冲突并使管道失败。有没有办法可以取消该特定 PR 的正在运行的构建?
我看到有一个选择
concurrency:
group: CI-${GITHUB_REF#refs/heads/}
cancel-in-progress: true
但我不明白组在这里意味着什么,并发不是取消或跳过而是使构建失败。情况不应该是这样。我在这里错过了什么吗?
你快到了。并发组只是 GitHub Action 观察到的一个名称。我们在工作流程级别使用以下并发(您也可以使用作业级别):
on:
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
该组已设置为您的<ref>
如果你再次按同样的<ref>
GitHub 会识别具有更高优先级的较新推送。同一组中当前正在运行的操作将被终止,新的操作将开始。您将收到来自 GitHub Action 的以下消息Canceling since a higher priority waiting request for '<ref>' exists
在终止的动作中。
您可以找到有关工作流程级别并发的 GitHub 文档here https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)