Gitlab如何停用指定分支及其子分支的流水线?
如何停用指定分支及其子分支的流水线触发
当然可以实现,关键是用对CI工具里的分支匹配规则——你之前用except没生效,大概率是通配符或正则的写法不对,下面分两种主流CI工具给出可行方案:
GitLab CI 配置
如果你的流水线是GitLab CI管理的,有两种可靠写法:
写法1:用workflow:rules全局控制(推荐)
这种方式会直接阻止整个流水线触发,比except更彻底:
workflow: rules: # 匹配Parent_branch本身,以及所有以Parent_branch/开头的子分支,直接跳过流水线 - if: '$CI_COMMIT_BRANCH =~ /^Parent_branch(\/.*)?$/' when: never # 其他分支正常触发 - when: always
写法2:用except配合正则
如果习惯用except,要确保覆盖父分支和所有子分支:
# 可针对单个job配置,也可全局配置 except: - Parent_branch - /^Parent_branch\/.*$/
这里的正则/^Parent_branch\/.*$/会匹配所有Parent_branch/xxx格式的子分支,补上父分支本身就能完全覆盖你的需求。
GitHub Actions 配置
如果用的是GitHub Actions,用branches-ignore或者条件判断都可以:
写法1:branches-ignore直接排除
on: push: branches-ignore: - 'Parent_branch' - 'Parent_branch/**' pull_request: branches-ignore: - 'Parent_branch' - 'Parent_branch/**'
Parent_branch/**会匹配所有该分支下的子分支结构。
写法2:job级别条件判断
jobs: your_job_name: runs-on: ubuntu-latest # 排除所有以Parent_branch开头的分支 if: "!startsWith(github.ref, 'refs/heads/Parent_branch')" steps: - uses: actions/checkout@v4 # 其他步骤...
内容的提问来源于stack exchange,提问作者wonderful_tiger439
相关产品推荐
相关产品推荐

