gpt4 book ai didi

yaml - 如何在 .gitlab-ci.yml 中合并序列?

转载 作者:行者123 更新时间:2023-12-04 01:08:04 25 4
gpt4 key购买 nike

我试图在 GitLab CI 中设置几个任务时消除一些冗余。作为一个(非常)简化的示例,我有两个工作涉及调用 apt-get update。 :

job1:
before_script:
- apt-get update
- apt-get install foo

job2:
before_script:
- apt-get update
- apt-get install bar

不是重复的忠实粉丝,我希望能够通过 anchors 的帮助“清理”yaml如下:
.update: &update
before_script:
- apt-get update

job1:
<<: *update
before_script:
- apt-get install foo

job2:
<<: *update
before_script:
- apt-get install bar

然而,似乎 before_script节不与 *update 合并.相反,我发现后一个被覆盖了。这与 GitLab CI 文档以及 Wikipedia 上的示例相反。 , 尽管。

通过一些实验,我设法让以下运行:
.update: &update apt-get update

job1:
before_script:
- *update
- apt-get install foo

job2:
before_script:
- *update
- apt-get install bar

显然是前进了一步。但是考虑到我打算进行更复杂的替换,这很难令人满意。供引用:这是在 GitLab v 8.12 上。

最佳答案

添加了 Gitlab 13.9 !reference 关键词:

.setup:
before_script: apt-get update

job1:
before_script:
- !reference [.setup, before_script]
- apt-get install foo

job2:
before_script:
- !reference [.setup, before_script]
- apt-get install bar
reference 的联合和 extend 真的很好,可以帮助你对抗冗余。

关于yaml - 如何在 .gitlab-ci.yml 中合并序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45011425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com