在我的项目中,我使用合并请求来测试构建,并在提交合并到主版本后进行部署。目前我的.gitlab-ci.yml
样子:
build:
stage: build
script:
- yarn build
artifacts:
paths:
- public
deploy:
stage: deploy
script: yarn deploy
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
Run Code Online (Sandbox Code Playgroud)
这种方式仅提交成功构建的内容并合并到 master 并部署。然而,构建阶段运行两次,一次在合并请求分支中,一次在主分支中。我想要这样的东西:
build:
stage: build
script:
- yarn build
artifacts:
paths:
- public
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
deploy:
stage: deploy
script: yarn deploy
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
Run Code Online (Sandbox Code Playgroud)
但是部署作业应该有一种方法来提取build
合并请求分支中作业生成的工件。是否可以?