2

目前,我正在复制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/
    ...

有没有办法只写一次,它会适用于所有的工作?

4

2 回答 2

4

如果您不完全依赖,Gitlab 已经包含了这方面的逻辑:根据文档skip-ci,当提交消息包含[skip ci]or[ci skip]时,将跳过管道。

于 2021-02-01T21:04:56.600 回答
2

在 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
    ...
于 2021-02-01T01:55:14.050 回答