gpt4 book ai didi

variables - 为仅针对一个管道运行的作业动态保存 GitLab 变量

转载 作者:行者123 更新时间:2023-12-02 02:11:18 26 4
gpt4 key购买 nike

我正在尝试为 Maven 项目自动化 DefectDojo 模板。我需要在 DefectDojo 实例中创建一个产品并存储创建的产品的 ID。

我为一个只运行一次的作业编写了一个脚本(创建项目时一个管道,然后因为它没用而将其删除)。

因此,我无法使用 .env 工件将我获得的 ID 传递到其他阶段,因为该作业不再运行。

事实上,我想使用运行一次的作业将 PRODUCT_ID 动态分配为 GitLab 变量。这可能吗?

最佳答案

您仍然可以将其传递给其他作业,或者您可以将其用作工件并将其传递给以后的作业或管道。如果需要,您还可以考虑将其保存为项目变量。您可以在稍后阶段将环境变量从一个作业传递到另一个作业。这些变量不能用作 CI/CD 变量来配置管道,但可以在作业脚本中使用。

在作业脚本中,将变量保存为.env 文件。将 .env 文件另存为 artifacts:reports:dotenv 工件。在后期设置作业以使用依赖项或需求关键字接收工件。随后的作业可以在脚本中使用该变量。例如,使用 dependencies 关键字:

build:
stage: build
script:
- echo "BUILD_VERSION=hello" >> build.env
artifacts:
reports:
dotenv: build.env

deploy:
stage: deploy
script:
- echo "$BUILD_VERSION" # Output is: 'hello'
dependencies:
- build

例如,使用 needs 关键字:

build:
stage: build
script:
- echo "BUILD_VERSION=hello" >> build.env
artifacts:
reports:
dotenv: build.env

deploy:
stage: deploy
script:
- echo "$BUILD_VERSION" # Output is: 'hello'
needs:
- job: build
artifacts: true

关于variables - 为仅针对一个管道运行的作业动态保存 GitLab 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67707362/

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