从以前的 GIT 作业中获取工件

iti*_*tin 1 pipeline artifact gitlab git-archive gitlab-ci

我的管道有 3 个阶段,所有 3 个阶段中的每个作业都创建一个 xml 数据文件。这些作业并行运行。

在此输入图像描述

我想在第四阶段合并所有 xml 数据文件。下面是我的yml代码

stages:
  - deploy
  - test
  - execute
  - artifact
script:
   - XYZ
artifacts:
  name: datafile.xml
paths:
  - data/
Run Code Online (Sandbox Code Playgroud)

问题:我如何收集以前作业中的所有 xml 来合并它?文件名是唯一的。

Ale*_*hin 5

这是一个.gitlab-ci.yml将工件收集到最终工件中的文件(采用早期阶段生成的文件,并将它们全部放在一起)。

关键是need属性,它从早期作业中获取工件(带有artifacts: true)。

stages:
  - stage_one
  - stage_two
  - generate_content

apple:
  stage: stage_one
  script: echo apple > apple.txt
  artifacts:
    paths:
      - apple.txt


banana:
  stage: stage_two
  script: echo banana > banana.txt
  artifacts:
    paths:
      - banana.txt

put_it_all_together:
  stage: generate_content
  needs:
    - job: apple
      artifacts: true
    - job: banana
      artifacts: true
  script:
    - cat apple.txt banana.txt > fruit.txt
  artifacts:
    paths:
      - fruit.txt
Run Code Online (Sandbox Code Playgroud)