gpt4 book ai didi

continuous-integration - 如何在 Gitlab CI 的同一阶段跨作业合并工件?

转载 作者:行者123 更新时间:2023-12-02 02:38:16 25 4
gpt4 key购买 nike

在 Gitlab CI 中,工件根据生成它们的作业进行隔离,因此在下载时,您只能按作业下载。

有没有办法下载所有工件,或者将工件传递到其他阶段并从那里上传?基本上是合并一个阶段的所有工件的某种方式。

可能需要它的场景:假设在阶段部署中,我在 10 台不同的服务器上部署我的项目,使用 10 个不同的并行作业。其中每一个都会产生一些工件。但是,无法从 UI 中全部下载它们。

那么有人知道解决方法吗?我不是在寻找基于 API 的解决方案,而是基于 UI 或编辑 CI yaml 文件以使其工作。

最佳答案

您可以使用 artifacts 在管道中创建一个“最终”(包)阶段,将所有工件组合在一起。语法。

例如:

stages:
- build
- package

.artifacts_template:
artifacts:
name: linux-artifact
paths:
- "*.txt"
expire_in: 5 minutes

build:linux-1:
extends: .artifacts_template
stage: build
script:
- touch hello-world-linux-1.txt

build:linux-2:
extends: .artifacts_template
stage: build
script:
- touch hello-world-linux-2.txt

build:linux-3:
extends: .artifacts_template
stage: build
script:
- touch hello-world-linux-3.txt

package:
stage: package
script:
- echo "packaging everything here"
needs:
- build:linux-1
- build:linux-2
- build:linux-3
artifacts:
name: all-artifacts
paths:
- "*.txt"
expire_in: 1 month

关于continuous-integration - 如何在 Gitlab CI 的同一阶段跨作业合并工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64003737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com