如何避免“此管道没有阶段/作业”。在 GitLab CI

时间:2021-03-20 18:22:28

标签: continuous-integration gitlab-ci

我希望在 GitLab CI 中有一个流程,其中所有测试都在合并请求中运行,一旦它们通过,分支将通过快进合并到 master,因此无需重复再次进行相同的测试。因此,对 master 的提交可能没有关联的作业。例如使用以下 .gitlab-ci.yml

test:
  script: mytest
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"

合并请求通过测试后,master 中的管道将失败并显示 "No stages / jobs for this pipeline."。这可以通过选中框 Simulate a pipeline created for the default branch 在 CI Lint 页面中进行验证。有没有办法在没有作业时防止 CI 在 master 中失败?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,this 解决方案可能会对您有所帮助:

test:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      script:
       - mytest

    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_BRANCH == "master"'
      script: 
       - mytest

      allow_failure: true

我希望这个解决方案可以帮助您或至少指导您找到解决方案!