我有多个 gitlab 项目,我想创建一个在多个项目下有用的模板。
我一个项目下有2个文件
function.sh
function.yml
问题: 在 function.yml 下,当我在 before-script 中使用 default 关键字时,无论在何处使用此模板,default 关键字都有可能被覆盖,并且该函数无法使用。编写 function.yml 的更好方法是什么,这样它会很有用。
当前
function.yml
default:
before_script: source scripts/functions.sh
现在我想将 function.yml 文件包含在其他 gitlab.yml 文件下,这样他们就可以直接使用 yml 文件中的函数。
例如。
include:
- local: template/function.yml
stages:
- testproject
testproject:
stage: testproject
script:
- echoFunction "This is a pattern derived from the other yml file" #function call from function.yml file
您可以使用以下方法降低 GitLab CI/CD 配置文件中的复杂性和重复配置:
!reference
示例:
函数.yml
.default:
before_script:
- source scripts/functions.sh
.gitlab-ci.yml
include:
- local: template/function.yml
stages:
- testproject
testproject:
stage: testproject
after_script:
- !reference [.default, before_script]
script:
- echoFunction "This is a pattern derived from the other yml file" #function call from function.yml file
extends
示例:
函数.yml
.default:
before_script:
- source scripts/functions.sh
.gitlab-ci.yml
include:
- local: template/function.yml
stages:
- testproject
testproject:
stage: testproject
extends: .default
script:
- echoFunction "This is a pattern derived from the other yml file" #function call from function.yml file