将脚本附加到一个阶段.gitlab-ci.yml

时间:2020-06-04 14:55:20

标签: gitlab yaml gitlab-ci pipeline

如何在.gitlab-ci.yml文件的一个阶段中添加脚本部分?

例如在本例中

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"

如何获取输出:

String 1
String 2
String 3

代替:

String 3

3 个答案:

答案 0 :(得分:1)

我不确定extends的用法,但是在这种情况下我通常使用dependencies

stages:
   - stage1

script1:
  stage: stage1
  script:
       //doSomething

script2:
  stage: stage1
  dependencies:
    - script1
  script:
      //doSomething

script3:
  stage: stage1
  depencencies:
     - script2
  script:
      //doSomething

这样,仅在完成script1和script3之后才启动script2,仅在第二秒之后启动。

答案 1 :(得分:0)

不可能,当您使用扩展时,您将覆盖整个块。

您可以使用类似@ user3106558示例的依赖项

答案 2 :(得分:0)

我对此的解决方案是:

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 中的 script 部分,我使用了before_script和after_script。