在 gitlab-ci.yml 文件中,我包含另一个 yml 文件,其中包含全局 before_script 代码。 比如说这段代码:
包括:
我想从包含的文件继承全局before_script,但也向全局before_srcipt添加更多代码,而不覆盖它。
例如这个 yml 文件 包括:
这会导致包含的 before_script 被覆盖。我想将它们合并。 如何才能实现?
尝试添加更多 before_script 代码,期望它与包含文件中的 before_script 代码合并。结果是我的本地 before_script 代码覆盖了包含文件中的代码。
您想要实现的目标可以使用
!reference tags
来完成,因此您将能够重新利用导入的配置并使用新脚本对其进行扩展。让我们看一个例子:
common-ci.yaml
.dependencies:
before_script:
- echo "Dependencies updated"
specific-ci.yaml
include:
- local: common-ci.yaml
reusing-config:
before_script:
- !reference [.dependencies, before_script]
- echo "Extra code after preparing dependencies!"
有关此功能的完整文档可以在文档中找到。