Continuous integration Gitlab-始终为每个阶段运行构建
我有3个阶段的构建,开发部署,QA部署 我想为DEV_DEPLOY和QA_DEPLOY这两个阶段运行构建。在下面的屏幕截图中解释。对我来说,当我合并到QA时,只有QA_部署正在运行,而构建没有运行 需求-当开发人员将代码构建和部署推到开发阶段时,应该运行,当团队负责人将开发分支合并到qa分支时,构建和部署到qa应该运行Continuous integration Gitlab-始终为每个阶段运行构建,continuous-integration,gitlab,gitlab-ci,pipeline,continuous-deployment,Continuous Integration,Gitlab,Gitlab Ci,Pipeline,Continuous Deployment,我有3个阶段的构建,开发部署,QA部署 我想为DEV_DEPLOY和QA_DEPLOY这两个阶段运行构建。在下面的屏幕截图中解释。对我来说,当我合并到QA时,只有QA_部署正在运行,而构建没有运行 需求-当开发人员将代码构建和部署推到开发阶段时,应该运行,当团队负责人将开发分支合并到qa分支时,构建和部署到qa应该运行 stages: - build_proj - dev_deploy - qa_release build: stage: buil
stages:
- build_proj
- dev_deploy
- qa_release
build:
stage: build_proj
script:
- run build
dev_deploy:
stage: dev_develop
environment: DEV
only:
- develop
qa_release:
stage: qa_release
dependencies:
- build_proj
environment: QA
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "develop"
您可以在管道中尝试以下规则:
stages:
- build
- deploy
build:
stage: build
script:
- echo "run build"
rules:
- if: '$CI_COMMIT_BRANCH == "develop"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH == "release"'
dev_deploy:
stage: deploy
script:
- echo "deploy dev"
environment: DEV
rules:
- if: '$CI_COMMIT_BRANCH == "develop"'
qa_release:
stage: deploy
script:
- echo "deploy release"
environment: QA
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH == "release"'
阶段仅在提交到build
并将请求合并到develope
分支时运行发布
阶段仅在dev_deploy
develop
阶段仅用于将请求合并到qa_release
分支中release