如何在Github Actions中设置concurrency=X限制并发工作流数量?
在GitHub Actions中限制工作流并发数为指定值(如2)
GitHub Actions支持通过concurrency配置项精确控制工作流实例的并发数量,以下是具体实现方式:
1. 全局仓库级工作流并发限制
如果需要限制整个仓库中某类工作流的并发实例数为2,直接在工作流YAML文件中添加如下配置:
concurrency: group: ${{ github.repository }} limit: 2 cancel-in-progress: false # 设为false时,超出并发数的工作流会排队等待;设为true则会取消正在运行的实例以启动新的
group使用仓库唯一标识作为分组依据,确保该规则覆盖整个仓库的目标工作流。
2. 分支/事件级精细并发限制
如果需要针对特定分支、事件或工作流做更精准的并发控制,可自定义分组标识:
concurrency: group: ${{ github.ref }}-${{ github.workflow }} limit: 2 cancel-in-progress: false
- 这里用
分支名+工作流名作为分组,确保每个分支的该工作流最多同时运行2个实例。
注意事项
limit参数是GitHub Actions在2023年推出的功能,确保你的仓库使用的是最新的Actions运行环境。- 若要限制同一个工作流内的Job并行数量,可使用
max-parallel配置(针对整个工作流的Job并行数),示例如下:
# 限制整个工作流的Job最大并行数为2 max-parallel: 2 jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # 其他步骤... test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # 其他步骤...
内容的提问来源于stack exchange,提问作者Vitaly Karasik DevOps
相关产品推荐
相关产品推荐

