GitLab CI - 将包含文件中的全局 before_script 代码与本地 before_script 合并

问题描述 投票:0回答:1

在 gitlab-ci.yml 文件中,我包含另一个 yml 文件,其中包含全局 before_script 代码。 比如说这段代码:

包括:

  • 项目:“SOME_PROJECT” 文件:
  • ‘common-ci.yml’

我想从包含的文件继承全局before_script,但也向全局before_srcipt添加更多代码,而不覆盖它。

例如这个 yml 文件 包括:

  • 项目:“SOME_PROJECT” 文件:
  • ‘common-ci.yml’ 之前_脚本:
  • echo“一些更全局的 before_script 代码”

这会导致包含的 before_script 被覆盖。我想将它们合并。 如何才能实现?

尝试添加更多 before_script 代码,期望它与包含文件中的 before_script 代码合并。结果是我的本地 before_script 代码覆盖了包含文件中的代码。

gitlab gitlab-ci gitlab-ci-runner cicd runner
1个回答
0
投票

您想要实现的目标可以使用

!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!"

有关此功能的完整文档可以在文档中找到

© www.soinside.com 2019 - 2024. All rights reserved.