无法访问 build.gradle UPD 中的 gitlab-ci 环境变量:使用 kaniko 时

Val*_* K. 1 environment-variables gradle gitlab gitlab-ci

我想获取 gitlab 环境变量并在 build.gradle 脚本中使用它。我在gitlab-ci中定义了变量:

 build:
  stage: build
  variables:
    TEST: "HELLO WORLD"
  script:
    - export
Run Code Online (Sandbox Code Playgroud)

另外,我使用 -export 命令来打印所有变量。我在 gitlab 作业控制台中看到了我的 TEST 变量。但是当我试图在 build.gradle 中获取这个变量时,它是空的。这是build.gradle代码片段:

    if (System.getenv('TEST') != null) {
    repositories {
        println 'CI=' + System.getenv('CI')
        println 'M- ' + System.getenv('MAVEN_REPO_USER')
        println 'T- ' + System.getenv('TEST')
        println 'CI_JOB_STAGE ' + System.getenv('CI_JOB_STAGE')
        mavenCentral()
    }
} else {
    repositories {
        println '*CI= ' + System.getenv('CI')
        println '*MAven ' + System.getenv('MAVEN_REPO_USER')
        println '* ' + System.getenv('CI_JOB_STAGE')
        println 'T-+++ ' + System.getenv('TEST')
        mavenCentral()
        mavenLocal()
    }
}
Run Code Online (Sandbox Code Playgroud)

所有环境变量都打印为 null,但在 gradle 尝试打印它们之前,我在 gitlab 作业控制台中看到所有这些变量都由 -export 命令打印。怎么了?

更新:在 ci-gitlab 中我使用 kaniko : - /kaniko/executor

Val*_* K. 5

要获取变量,必须在 Dockerfile 和 gitlab-ci 中使用 ARG 指令将其定义为 build-arg。ARG 指令设置用户传递给图像收集器的变量。

Dockerfile:

ARG TEST
Run Code Online (Sandbox Code Playgroud)

gitlab-ci:

build:
  stage: build
  script:
    - /kaniko/executor
      --build-arg TEST="HELLO WORLD"
Run Code Online (Sandbox Code Playgroud)

“变量:”部分不是必需的