如何在Build and deploy流程配置条件实现仅master分支触发部署
单YML流水线限制仅master分支执行部署的配置方法
你只需要给部署环节单独增加分支校验规则即可,原有构建环节的配置无需改动,会在所有触发流水线的分支上正常运行,只有部署环节会在分支校验通过后才执行。
不同CI平台的具体配置写法
GitHub Actions
在部署job层级添加if条件,判断当前触发分支是否为master即可:
name: Build & Deploy on: push jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # 原有构建逻辑保持不变 - run: npm ci - run: npm run build deploy: needs: build runs-on: ubuntu-latest # 核心条件:仅master分支触发时执行当前job if: github.ref == 'refs/heads/master' steps: # 原有部署逻辑保持不变 - run: echo "执行部署操作"
GitLab CI
可以通过rules字段给部署job添加分支匹配规则:
stages: - build - deploy build: stage: build script: # 原有构建逻辑保持不变 - npm ci - npm run build deploy: stage: deploy script: # 原有部署逻辑保持不变 - echo "执行部署操作" # 核心规则:仅master分支执行当前job rules: - if: $CI_COMMIT_BRANCH == "master"
其他基于YML的CI/CD工具(如Jenkins声明式流水线、Gitea Actions等)
逻辑完全一致:找到部署步骤的配置块,添加分支判断条件,校验当前流水线触发分支为master时才允许执行部署块内的逻辑。
注意:如果你的流水线会在Pull Request/合并请求事件时触发,需要将判断条件调整为校验PR的目标分支为master,避免非master分支提交的PR误触发部署流程。
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

