【问题标题】:gitlab-ci.yml only on master branchgitlab-ci.yml 仅在 master 分支上
【发布时间】:2021-11-11 09:44:42
【问题描述】:

我有一个这样的 gitlab-ci.yml 文件,并且只想在 Branch Master 上运行它。如果推送到开发分支,则管道应该启动。

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

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

only:
  refs:
    - master

【问题讨论】:

    标签: gitlab


    【解决方案1】:

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

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

    这必须在您的 yaml 的“根”上,因为它不是任何特定工作的一部分。

    在上面的示例中,我告诉管道在推送存储库标签时避免运行,并且仅在主分支中完成提交时运行。

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

    【讨论】:

      【解决方案2】:

      我认为您在这里遇到了缩进问题。 它应该是这样的:

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

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

      【讨论】:

      • 不,我收到一个错误,指出 gilab-ci.yml 文件无效......
      • @Petziferum 这里有同样的问题。但我找到了一个相关的link
      猜你喜欢
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 2019-06-14
      • 2020-09-13
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 2021-02-10
      相关资源
      最近更新 更多