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-1
和 file-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]
.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-1
和 file-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]