目前,我们在每个项目中都放置了一个 .gitlab-ci.yml。目前我们有 50 多个项目,每次 .gitlab-ci.yml 发生更改时,团队都必须更改所有项目的结构。是否可以有一个通用的 .gitlab-ci.yml?
尝试
- 尝试过一个 gitlab-ci.yml,但不知道如何更改此文件的默认路径
- 通用脚本减少了代码重复量,但如果 gitlab-ci.yml 结构发生变化,我们必须在所有项目中实现它
答案1
不,这是不可能的。这违背了该方法存在的原因,因为如果你添加一个需要完全不同的 yml 文件的 git repo/project 怎么办?
您可以做的(如您所述)是运行一个脚本,该脚本在.gitlab-ci.yml
运行过程中下载。如下所示:
stages:
- prep
- run
get_script:
stage: prep
script:
- wget http://my_local_script.lan/run_suite.sh -O /tmp/run_suite.sh
run_script:
stage: run
script:
- bash /tmp/run_suite.sh
将其设置为每个项目的脚本,然后您需要做的就是更新一次 run_suite.sh,所有新项目都会使用它。
恐怕我想没有比这更好的办法了。
答案2
如果我想要一个全局 CI 配置,我会使用系统挂钩。
当然,你会失去 Gitlab CI 的一些(全部)酷炫功能