将脚本附加到一个stage.gitlab-ci.yml上
如何在.gitlab-ci.yml文件的一个阶段中附加脚本部分 e、 g在本例中将脚本附加到一个stage.gitlab-ci.yml上,gitlab,yaml,gitlab-ci,pipeline,Gitlab,Yaml,Gitlab Ci,Pipeline,如何在.gitlab-ci.yml文件的一个阶段中附加脚本部分 e、 g在本例中 stages: - stage1_name .a: script: - echo "String 1" .b: script: - echo "String 2" stage1_name: stage: stage1_name extends: .a extends: .b script: - echo "String 3" 如何获取as输出: Stri
stages:
- stage1_name
.a:
script:
- echo "String 1"
.b:
script:
- echo "String 2"
stage1_name:
stage: stage1_name
extends: .a
extends: .b
script:
- echo "String 3"
如何获取as输出:
String 1
String 2
String 3
而不是:
String 3
我不确定
是否扩展了
用法,但我通常使用依赖项
来处理这种情况
stages:
- stage1
script1:
stage: stage1
script:
//doSomething
script2:
stage: stage1
dependencies:
- script1
script:
//doSomething
script3:
stage: stage1
depencencies:
- script2
script:
//doSomething
这样,script2将仅在完成script1之后启动,script3-仅在第二次之后启动。这是不可能的,当您使用extends时,您将覆盖整个块
您可以使用@user3106558示例之类的依赖项我的解决方案是:
stages:
- stage1_name
.b:
script:
- echo "String 2"
stage1_name:
stage: stage1_name
before_script:
- echo "String 1"
extends: .b
after_script:
- echo "String 3"
为了不覆盖stage_1_name中的脚本部分,我使用了before_脚本和after_脚本。我得到了“script2作业:依赖项script1未在以前的阶段中定义”我得到了“script2作业:依赖项script1未在以前的阶段中定义”请注意,即使
script
失败,也会运行after\u脚本。