将脚本附加到一个stage.gitlab-ci.yml上

将脚本附加到一个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

如何在.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输出:

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脚本。