You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Gitflow分支模型的Bitbucket Pipeline定制配置咨询

Bitbucket Pipeline 配置实现Gitflow手动触发后续部署

核心思路

依托Bitbucket Pipeline的手动触发步骤(manual steps)和分支/标签条件匹配,针对Gitflow的三个流转场景分别配置独立流水线,确保每个触发源仅启动对应流程,后续环境部署需人工确认触发。

完整配置示例

image: atlassian/default-image:3

pipelines:
  # 场景1:Feature合并到Dev后自动部署Dev,手动触发Release/Master部署
  branches:
    dev:
      - step:
          name: 自动部署到Dev环境
          script:
            - echo "执行Dev环境部署脚本"
            # 替换为实际部署命令,如:./deploy-dev.sh
      - step:
          name: 手动部署到Release环境
          trigger: manual
          script:
            - echo "执行Release环境部署脚本"
            # 替换为实际部署命令,如:./deploy-release.sh
      - step:
          name: 手动部署到Master环境
          trigger: manual
          script:
            - echo "执行Master环境部署脚本"
            # 替换为实际部署命令,如:./deploy-master.sh

    # 场景3:直接提交到Release后自动部署Release,手动触发Master/Dev部署
    release/*:
      - step:
          name: 自动部署到Release环境
          script:
            - echo "执行Release环境部署脚本"
            # 替换为实际部署命令,如:./deploy-release.sh
      - step:
          name: 手动部署到Master环境
          trigger: manual
          script:
            - echo "执行Master环境部署脚本"
            # 替换为实际部署命令,如:./deploy-master.sh
      - step:
          name: 手动部署到Dev环境
          trigger: manual
          script:
            - echo "执行Dev环境部署脚本"
            # 替换为实际部署命令,如:./deploy-dev.sh

  # 场景2:Hotfix合并到Master后自动部署Master,手动触发Dev部署(标签触发方式)
  tags:
    hotfix-*:
      - step:
          name: 自动部署到Master环境
          script:
            - echo "执行Master环境部署脚本"
            # 替换为实际部署命令,如:./deploy-master.sh
      - step:
          name: 手动部署到Dev环境
          trigger: manual
          script:
            - echo "执行Dev环境部署脚本"
            # 替换为实际部署命令,如:./deploy-dev.sh

  # 场景2替代方案:通过PR合并事件触发(无需打标签)
  pull-requests:
    '**':
      - step:
          name: 自动部署Hotfix到Master
          script:
            - |
              if [ "$BITBUCKET_PR_DESTINATION_BRANCH" = "master" ] && [[ "$BITBUCKET_PR_SOURCE_BRANCH" =~ ^hotfix/ ]]; then
                ./deploy-master.sh
              fi
          condition:
            - $BITBUCKET_PR_DESTINATION_BRANCH = "master"
            - $BITBUCKET_PR_SOURCE_BRANCH =~ ^hotfix/
      - step:
          name: 手动部署Hotfix到Dev
          trigger: manual
          condition:
            - $BITBUCKET_PR_DESTINATION_BRANCH = "master"
            - $BITBUCKET_PR_SOURCE_BRANCH =~ ^hotfix/
          script:
            - ./deploy-dev.sh

关键配置说明

场景1(Feature → Dev → Release → Master)

  • 代码合并到dev分支时,自动执行Dev环境部署
  • 后续Release、Master部署步骤通过trigger: manual设置为手动触发,需在Bitbucket流水线页面点击启动

场景2(Hotfix → Master → Dev)

  • 推荐用标签触发:Hotfix合并到Master时打hotfix-*格式的标签,自动触发Master部署,后续手动触发Dev部署
  • 替代方案:通过PR事件判断源分支为hotfix/*且目标分支为master,触发对应流程
  • 此流程完全独立,不会触发场景1的Dev分支流水线

场景3(Release → Master → Dev)

  • 针对release/*分支的提交,自动部署Release环境
  • 后续Master、Dev部署需手动触发,不会触发场景1、2的流程,因为分支匹配规则互不重叠

注意事项

  1. 统一分支命名规范:Feature分支用feature/*、Hotfix用hotfix/*、Release用release/*,确保条件判断精准
  2. 部署脚本需支持幂等执行,避免重复部署导致异常
  3. 手动触发步骤会在Bitbucket流水线页面显示为“等待手动触发”,仅有权限用户可操作

内容的提问来源于stack exchange,提问作者Bilal Usean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:01:07