如何将Bitbucket自定义手动流水线限制到特定分支?
如何在Bitbucket Pipelines中实现手动触发流水线的分支限制
你可以通过两种方式实现手动触发流水线仅在release/*分支上运行的需求:
方案一:声明式分支匹配(推荐)
Bitbucket Pipelines允许在自定义流水线中直接指定分支匹配规则,这样只有符合release/*模式的分支才能触发这条手动流水线,非匹配分支在手动触发时会被直接拦截。
完整配置示例:
pipelines: # 原有的main分支自动流水线 branches: main: - step: name: 部署到预发布环境 # 你的预发布部署步骤配置 script: - echo "部署到staging环境..." # 带分支限制的手动触发生产流水线 custom: production-deployment: # 指定仅匹配release/*分支 branches: release/*: - step: name: 部署到生产环境 # 你的生产部署步骤配置 script: - echo "部署到production环境..."
配置后,当你手动触发production-deployment流水线时,只有release/*分支会出现在可选列表中,非匹配分支无法触发这条流水线。
方案二:脚本分支检查(兜底验证)
如果需要更灵活的分支校验逻辑,或者作为声明式配置的补充,可以在流水线步骤中添加脚本,主动检查当前分支是否符合规则,不符合则直接终止流水线。
配置示例:
pipelines: custom: production-deployment: - step: name: 分支合法性校验 script: # 检查当前分支是否匹配release/*模式 - if ! [[ "$BITBUCKET_BRANCH" =~ ^release/.*$ ]]; then echo "错误:仅允许在release/*分支触发该流水线" exit 1 fi # 如果需要,可以添加其他步骤 - step: name: 部署到生产环境 script: - echo "部署到production环境..."
这里利用Bitbucket提供的环境变量BITBUCKET_BRANCH获取当前分支,通过正则表达式匹配验证,不符合则抛出错误并退出流水线,避免后续部署步骤执行。
你可以根据实际需求选择其中一种方案,推荐优先使用声明式配置,更简洁且符合Bitbucket Pipelines的原生规则。
内容的提问来源于stack exchange,提问作者Yossi G.
相关产品推荐
相关产品推荐

