【问题标题】:github actions: Push several times, but I want the build to be done only for the last pushgithub 操作:多次推送,但我希望仅在最后一次推送时完成构建
【发布时间】:2021-08-12 21:53:12
【问题描述】:
name: master builder
on:
  push:
    branches:
      - master
    ~~~

我有这样的工作流程。因此,每当我推送到主分支时,操作都会运行。 但我希望构建只在最后一次推送时工作。 例如,

master 分支 - feature1 (person1)

master 分支 - feature2 (person2)

master 分支 - feature3 (person3)

在这种结构中,如果 features1,2,3 几乎同时合并,构建将运行 3 次。 但我希望主分支仅在最后一次合并上构建。就一次。 有没有办法做到这一点? like.. 推送时等待大约 1 分钟后只运行一次构建。


这是我按照您回答的方式进行的示例代码。但我得到一个错误“不允许关键的'并发'”。怎么了?

name: test

on:
  push:
    branches:
      - feature/**

concurrency:
  group: ${{ github.ref }}
  cancel-in-progress: true

jobs:
~~~

【问题讨论】:

    标签: github build github-actions


    【解决方案1】:

    您可以尝试使用concurrency cancel-in-progress: true 来实现此目的

    并发确保一次只运行一个使用同一并发组的作业或工作流。并发组可以是任何字符串或表达式。该表达式只能使用 github 上下文。有关表达式的更多信息,请参阅“GitHub Actions 的上下文和表达式语法”。

    您还可以在作业级别指定并发性。有关详细信息,请参阅作业。.concurrency。

    当并发作业或工作流排队时,如果另一个使用存储库中的并发组的作业或工作流正在进行,则排队的作业或工作流将处于挂起状态。并发组中任何先前挂起的作业或工作流都将被取消。要同时取消同一并发组中任何当前正在运行的作业或工作流,请指定 cancel-in-progress: true。

    然而

    注意:并发目前处于测试阶段,可能会发生变化。

    这是一个示例工作流程:

    name: Deploy
    
    on:
      push:
        branches:
          - main
          - production
        paths-ignore:
          - '**.md'
    
    
    # Ensures that only one deploy task per branch/environment will run at a time.
    concurrency:
      group: environment-${{ github.ref }}
      cancel-in-progress: true
    
    jobs:
    
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Extract commit
            run: |
              echo "Sending commit $GITHUB_SHA for $GITHUB_REPOSITORY"
    

    【讨论】:

    • 哇,谢谢!我不知道有这样的事情!
    • 但是当我尝试这样做时,我收到一条错误消息,说不允许密钥“并发”。我做错了什么?
    • 我添加了一个例子。请检查它是否适合您。
    • 我试过了,但我仍然收到错误“不允许密钥'并发'。”如果取消并发性,则操作正常工作。
    • 只有github提供的runner才有可能并发? (目前已注册并用作自托管运行器。...)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2017-04-03
    • 1970-01-01
    相关资源
    最近更新 更多