【问题标题】:Gitlab Double pipeline triggering issueGitlab双管道触发问题
【发布时间】:2022-01-09 05:05:01
【问题描述】:

推送提交时会触发两个管道作业。但是手动启动管道时没有发生同样的事情。

我应该在哪里检查? 左箭头或右箭头表示分支活动是什么意思?

我要说的是有一个合并请求待处理,会不会导致这个问题?

【问题讨论】:

    标签: gitlab pipeline


    【解决方案1】:

    您的解决方案的问题是,它仅在您有合并请求事件时避免管道执行,但仍然会有重复的管道,例如合并请求管道(detached 的)和分支管道(其他),我认为在推送标签时,您的设置也会创建一个单独的管道。

    按照文档,您可以在使用以下工作流规则集(我添加了|| $CI_COMMIT_TAG)时避免重复的管道和在分支管道和 MR 管道之间切换,因为在推送标签时也应该创建管道(但是也许只有少数工作会被添加到这个管道中)

    workflow:
      rules:
        - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
        - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
          when: never
        - if: '$CI_COMMIT_BRANCH' || '$CI_COMMIT_TAG'
    

    这个管道是一个合并请求管道,你可以看到这是因为它是 detached 并且因为合并请求符号和提交 id 左侧的 MR 编号

    以下屏幕截图显示了一个“普通”分支管道,由提交 ID 左侧的分支名称和 GitLab 分支符号表示

    【讨论】:

      【解决方案2】:

      待处理的合并请求会导致触发第二个管道作业。将以下内容添加到gitlab-ci.yml file 后解决

      workflow:
        rules:
          - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
            when: never
          - when: always
      

      【讨论】:

      • 第一条规则不会避免管道中的重复,它只会避免在打开合并请求时生成管道,请参阅下面的答案以获取更多信息和更新的规则集,但这是一个相当棘手的话题,我已经花了很多时间修复重复的管道
      猜你喜欢
      • 2020-06-14
      • 1970-01-01
      • 2021-11-15
      • 2021-10-10
      • 2021-11-26
      • 1970-01-01
      • 2022-11-15
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多