gitlab-ci.只在主分支上

  • 本文关键字:分支 gitlab-ci gitlab
  • 更新时间 :
  • 英文 :


我有一个gitlab-ci。像这样的yml文件,并希望只在Branch Master上运行它。如果有一个push到开发分支,Pipeline应该而不是开始。

我尝试使用'only'关键字,但它显示一个错误。

stages:
- info
- build
- test
- review
- cleanup
- deploy-dev
- integration-test
- deploy-test
- system-test
- deploy-production
only:
refs:
- master

要为每个阶段定义触发器规则,可以使用workflow关键字,如下所示:

workflow:
rules:
- if: $CI_COMMIT_TAG
when: never
- if: $CI_COMMIT_BRANCH == 'master'

这个必须放在"根"因为它不是任何特定工作的一部分。

在上面的例子中,我告诉管道避免在仓库标签被推送时运行,只在主分支中完成提交时运行。

您可以使用它作为基础,并添加其他条件来触发管道中的阶段,有关此问题的完整文档可以在这里找到:https://docs.gitlab.com/ee/ci/yaml/#workflow

我想你这里有缩进问题。它应该是这样的:

stages:
- job_1
- job_2
- ....
- job_n
job_1:
stage: job_1
....
only:
refs:
- master
job_2:
stage: job_2
....
only:
refs:
- master
....

您需要为每个阶段定义目标分支。

最新更新