Py学习  »  Git

在Gitlab管道的多个阶段中使用$CI_JOB_ID作为常量

ontherocks • 4 年前 • 1704 次点击  

我有以下几点

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 每个阶段的变化)。

我想要的是设定 $MY_ENV_VAR 一次一个值 $CI_JOB_ID 使其为常数,使 $MY_ENV_VAR 用于所有阶段。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130367
文章 [ 1 ]  |  最新文章 4 年前
sytech
Reply   •   1 楼
sytech    4 年前

使用 $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