我遇到了拦截器,我确信其他人一定也遇到过这个问题,所以只需检查是否有任何解决方法。
这是一个 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"
Run Code Online (Sandbox Code Playgroud)
现在,如果我多次提交,它将触发多个构建,这些构建将相互冲突并使管道失败。有没有办法可以取消该特定 PR 的正在运行的构建?
我看到有一个选择
concurrency:
group: CI-${GITHUB_REF#refs/heads/}
cancel-in-progress: true
Run Code Online (Sandbox Code Playgroud)
但我不明白组在这里意味着什么,并发不是取消或跳过而是使构建失败。情况不应该是这样。我在这里错过了什么吗?
tho*_*idl 10
你快到了。并发组只是 GitHub Action 观察到的一个名称。我们在工作流程级别使用以下并发(您也可以使用作业级别):
on:
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
Run Code Online (Sandbox Code Playgroud)
该组设置为您的<ref>,如果您在同一个<ref>GitHub 上再次推送,则会识别出具有更高优先级的较新推送。同一组中当前正在运行的操作将被终止,新的操作将开始。Canceling since a higher priority waiting request for '<ref>' exists您将在终止的操作中收到来自 GitHub Action 的以下消息
。
您可以在此处找到有关工作流程级别并发性的 GitHub 文档
| 归档时间: |
|
| 查看次数: |
5885 次 |
| 最近记录: |