Gitlab-CI:如何避免服务配置作业之间的重复?

Rom*_*kiy 2 gitlab-ci

我有以下工作配置.gitlab-ci.yml:

job1:
  stage: test
  services:
    - name: mariadb
      alias: mysql
      entrypoint: [""]
      command: [...]

  script:
    - ...

job2:
  stage: test
  services:
    - name: mariadb
      alias: mysql
      entrypoint: [""]
      command: [...]

  script:
    - ...

job3:
  stage: test
  services:
    - name: mariadb
      alias: mysql
      entrypoint: [""]
      command: [...]

  script:
    - ...
Run Code Online (Sandbox Code Playgroud)

services 所有3个工作的部分相同.

是否有可能避免这种重复?

Tom*_*ský 7

您还可以使用Anchors YAML功能 - https://docs.gitlab.com/ee/ci/yaml/#anchors.

.job_template: &job_definition
  services:
    - name: mariadb
      alias: mysql
      entrypoint: [""]
      command: [...]

job1:
  <<: *job_definition
  stage: test
Run Code Online (Sandbox Code Playgroud)

当配置对所有作业都通用时,请使用全局服务.如果要避免仅在某些作业中重复,请使用YAML锚点.