我有以下内容
stages:
- stage1
- stage2
variables:
MY_ENV_VAR: env_$CI_JOB_ID
stage1_build:
stage: stage1
script:
- echo $MY_ENV_VAR
stage2_build:
stage: stage2
script:
- echo $MY_ENV_VAR
我在两个阶段中得到不同的 $MY_ENV_VAR
值(这意味着 $CI_JOB_ID
在每个阶段都会发生变化)。
我想要的是使用 $CI_JOB_ID
的一个值设置 $MY_ENV_VAR
一次,并将其设为常量,以便 $MY_ENV_VAR 具有相同的值
code> 用于所有阶段。
最佳答案
使用 $CI_PIPELINE_ID
instaed,该值在管道中的所有作业中保持不变。
variables:
MY_ENV_VAR: env_$CI_PIPELINE_ID
参见predefined environment variables以供其他引用。
如果您确实希望在一个作业中创建环境变量并在管道的其余部分中保留,则可以使用 artifacts:reports:dotenv
在作业之间传递变量。
stages:
- stage1
- stage2
set_env:
stage: .pre
script:
echo "MY_ENV_VAR=env_$CI_JOB_ID" > .myenv
artifacts:
reports:
dotenv: .myenv
stage1_build:
stage: stage1
script:
- echo $MY_ENV_VAR
stage2_build:
stage: stage2
script:
- echo $MY_ENV_VAR
关于gitlab - 使用 $CI_JOB_ID 作为 Gitlab 管道多个阶段的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71682819/