是否可以有一个通用的 .gitlab-ci.yml 而不是在每个项目中复制对 .gitlab-ci.yml 的更改?

030*_*030 2 gitlab

目前我们在每个项目中都放了一个 .gitlab-ci.yml 。目前我们有 50 多个项目,每次 .gitlab-ci.yml 发生变化时,团队都必须更改所有项目的结构。是否可以拥有一个通用的 .gitlab-ci.yml?

尝试

  1. 试图有一个 gitlab-ci.yml,但不知道如何更改此文件的默认路径
  2. 通用脚本减少了代码重复量,但如果 gitlab-ci.yml 结构发生变化,我们必须在所有项目中实现它

小智 5

不,这是不可能的。这与为什么存在这种方法的想法背道而驰,因为如果您添加一个需要完全不同的 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 Code Online (Sandbox Code Playgroud)

将此设置为每个项目的脚本,然后您需要做的就是更新 run_suite.sh 一次,所有新项目都将使用它。

恐怕没有比这更好的方法了。