代码之家  ›  专栏  ›  技术社区  ›  Daniel Danielecki

GitLab CI:避免跳过CI的乘法

  •  0
  • Daniel Danielecki  · 技术社区  · 3 年前

    目前,我正在复制关于 skip-ci 在每一份工作中,就像这样

    job1:
      except:
        variables:
          - $CI_COMMIT_MESSAGE =~ /skip-ci/
        ...
    job2:
      except:
        variables:
          - $CI_COMMIT_MESSAGE =~ /skip-ci/
        ...
    job3:
      except:
        variables:
          - $CI_COMMIT_MESSAGE =~ /skip-ci/
        ...
    

    有没有办法只写一次就可以申请所有工作?

    0 回复  |  直到 3 年前
        1
  •  4
  •   Simon Leiß    3 年前

    以防你不完全依赖 skip-ci ,Gitlab已经包含了这方面的逻辑: 当提交消息包含 [skip ci] [ci skip] ,管道被跳过 to the docs .

        2
  •  2
  •   DV82XL    3 年前

    在GitLab中有两种方法可以做到这一点:

    工作继承

    这是推荐的方法,因为它比YAML锚更具可读性,如果需要,可以从多个作业中进行扩展。在下面的示例中,作业名称前面的句点会导致GitLab隐藏作业,以便模板作业不会自行执行。

    .skip-ci:
      except:
        variables:
          - $CI_COMMIT_MESSAGE =~ /skip-ci/
    
    job1:
      extends: .skip-ci
        ...
    job2:
      extends: .skip-ci
        ...
    job3:
      extends: .skip-ci
        ...
    

    YAML锚

    为了完整性,我加入了这种方法,但一般来说,使用它总是更好的 extends .

    .skip-ci: &skip-ci
      except:
        variables:
          - $CI_COMMIT_MESSAGE =~ /skip-ci/
    
    job1:
      <<: *skip-ci
        ...
    job2:
      <<: *skip-ci
        ...
    job3:
      <<: *skip-ci
        ...
    
    推荐文章