Gitlab CI 是否可以将公共行保留在一个文件中并在其他文件中引用它

Gitlab CI is it possible to keep common lines in one file and refer it in other files

.gitlab-ci.yml

include:
    - local: file-1.gitlab-ci.yml
    - local: file-2.gitlab-ci.yml

文件-1.gitlab-ci.yml

some-script: &some-script
   .......

job1:
 script:
   - *some-script

文件-2.gitlab-ci.yml

some-script: &some-script
   .......

job2:
 script:
   - *some-script

此处 some-script(示例中所示)在两个文件 file-1file-2 中是相同的,但我必须在两个地方维护它。可以将 some-script 保存在一个公共文件中,比如 file-3,然后在 file-1 file-2 中使用它,这样如果有更改,只需在 file-3

使用 !reference tag 可以解决您的问题。

您可以将 some-script 部分移动到它自己的 file-3 文件中。

.some-script:
  script:
    - ...

然后在file-1/file-2中引用file-3中的script块。

include:
    - local: file-3.gitlab-ci.yml
job1:
 script:
   - !reference [.some-script, script]