首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当新管道触发GitHub操作时,取消先前的管道

当新管道触发GitHub操作时,取消先前的管道
EN

Stack Overflow用户
提问于 2021-08-31 19:50:54
回答 1查看 1.4K关注 0票数 4

我碰到了一个拦截器,我相信其他人肯定也面临过这个问题,所以只要检查一下是否有任何解决办法。

这是一个示例Github工作流。

代码语言:javascript
复制
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"

现在,如果我多次提交,它将触发多个构建,这将相互冲突,并使管道失败。有什么办法可以取消那个特定公关的运行版本吗?

我知道有一个选择

代码语言:javascript
复制
concurrency: 
  group: CI-${GITHUB_REF#refs/heads/}
  cancel-in-progress: true

但是我不明白组在这里意味着什么,并发不是取消或跳过,但是失败的build.That不应该是这样的。我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-03-17 12:46:46

你快到了。并发组只是由GitHub操作观察到的名称。我们在工作流级别上使用以下并发性(也可以使用作业级别):

代码语言:javascript
复制
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文档,您可以找到这里

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69004608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档