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

Tri*_*nci 10 yaml pipeline gitlab gitlab-ci

如何在 .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"
Run Code Online (Sandbox Code Playgroud)

如何获得输出:

String 1
String 2
String 3
Run Code Online (Sandbox Code Playgroud)

代替:

String 3
Run Code Online (Sandbox Code Playgroud)

Fer*_*uis 11

Gitlab 13.9 引入了!reference标签,这使得这成为可能;

.setup:
  script:
    - echo creating environment

test:
  script:
    - !reference [.setup, script]
    - echo running my own command
Run Code Online (Sandbox Code Playgroud)


小智 9

您可以像这样使用 YAML锚点:

stages:
  - stage1_name

.a: &a
  - echo "String 1"

.b: &b
  - echo "String 2"

stage1_name:
  stage: stage1_name
  script:
    - *a
    - *b
    - echo "String 3"
Run Code Online (Sandbox Code Playgroud)

  • @JohnXiao 使用“!reference”标签选择答案的优点是您可以重用**单独**文件中的脚本部分。仅使用 YAML 锚点无法做到这一点。 (2认同)