我知道您可以使用 yaml 锚点在 before 脚本中重用代码块:
.something_before: &something_before
- echo 'something before'
before_script:
- *something_before
- echo "Another script step"
Run Code Online (Sandbox Code Playgroud)
.yml但是当 .something_before通过.something_before 在共享文件中声明时,这似乎不起作用include:file。它似乎也不extends适用于before_script. 有谁知道如何重用before_script共享.yml文件中的某些步骤?
编辑:我的用例是我有 2 个 gitlab 项目,它们的 before_script 步骤几乎相同。我不想在发生更改时都必须更改这两个项目,因此我有第三个单独的 Gitlab 项目,其中包含一个 .yml 模板,我通过 include:file 将其包含在两个项目中。我想将所有通用代码放入该共享模板中,并且对于具有两个额外步骤的 git 项目,只有两行 before_script 。
dan*_*elz 15
Yaml 锚点不适用于包含的文件。您需要使用extends关键字。但是您想要实现的目标将无法使用,before_script因为模板中的代码将在使用该模板的作业中被覆盖(如果也有)before_script。
在你的特定工作中你真的需要 before_script 还是你可以用普通的来实现相同的目的script?如果是,你可以这样做:
模板文件:
.something_before:
before_script:
- echo 'something before'
- echo 'something more before'
Run Code Online (Sandbox Code Playgroud)
项目管道:
include:
- project: 'my-group/my-project'
file: '/something_before.yml'
stages:
- something
something:
stage: something
extends: .something_before
script:
- echo 'additional stuff to do'
Run Code Online (Sandbox Code Playgroud)
您的before_script部分将合并到某些作业中并在该script部分之前执行。
sey*_*yed 11
您可以使用该!reference标签。
.something:
before_script:
- echo 'something before'
before_script:
- !reference [".something", "before_script"]
- echo "Another script step"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22847 次 |
| 最近记录: |