我想学习如何继承.gitlab
. 我在文档中找到了如何做到这一点。这可以通过before_script
和来完成after_script
。描述在这里。通过继承,我的意思是重用代码的能力:
default:
before_script:
- IMAGE=${IMAGE} make build
- IMAGE=${VERSION} make run
golang-tesseract:
when: manual
variables:
VERSION: test
IMAGE: golang-tesseract
script:
- echo "Finished"
因此,在这种情况下,在启动时,它将golang-tesseract
首先执行before_script
fromdefault
然后 -- script
。在这种情况下,变量将从golang-tesseract
. 但script
我还有一个不必要的命令。有可能摆脱它吗?该文档.gitlab
明确指出每条规则都有一个必需的部分script
。也许有一些解决方法?
before_script
after_script
这根本不是关于继承的,而是关于脚本之前和之后的。你需要
.job_template
,它们是锚(anchors
),更多细节在这里: https ://docs.gitlab.com/ee/ci/yaml/#anchors解决方案,以及使用继承的示例:
通过
anchor
和extends
:通过别名
alias
:既然我们在谈论脚本,甚至脚本也可以被继承:
!!两个选项都不行!!
您可以在基本任务
script
而不是before_script
. 那么后继者中不需要该脚本您可以尝试在继任者中执行此操作
script: []
(不确定是否可行)可以代替
default
使用extends