首页/开发/CI/CD 与发布速查/并发控制与部署互斥(resource_group / concurrency)
流水线设计54 条

并发控制与部署互斥(resource_group / concurrency)

对同一环境的部署加互斥锁:同一时刻只允许一个流水线操作该环境,避免两个版本相互覆盖。

CI/CD 与发布速查开发更新于 2026-10-12
GitLabresource_group 同名作业串行执行,常用于 deploy 作业
GitHubconcurrency 分组,cancel-in-progress 可为 false 以保留先到者
典型键名production、staging、deploy-<环境>

GitLab

GitLab
deploy-prod:
  stage: deploy
  resource_group: production
  script: ./ci/deploy.sh prod

GitHub

GitHub
concurrency:
  group: production
  cancel-in-progress: false
并发组按「环境」粒度过粗会拖慢无关发布,按实际互斥范围命名。

易错点

  • 互斥只挡「同时执行」,不挡「排队中变更顺序」:需要保留顺序时用队列语义
  • GitHub 并发组作用域按仓库+分支计算,跨分支互斥需在命名上显式对齐

数据来源与参考

  • GitLab Docs《Resource groups》
  • GitHub Docs《Using concurrency》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌