Не удается получить доступ к переменным среды gitlab-ci в build.gradle UPD: при использовании kaniko - PullRequest
0 голосов
/ 27 марта 2020

Я хочу получить переменную среды gitlab и использовать ее в скрипте build.gradle. Я определил переменную в gitlab-ci:

 build:
  stage: build
  variables:
    TEST: "HELLO WORLD"
  script:
    - export

Кроме того, я использую команду -export для печати всех переменных. И я вижу свою переменную TEST в консоли заданий gitlab. Но когда я пытаюсь получить эту переменную в 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()
    }
}

Все переменные окружения печатаются как нулевые, но я вижу все это в консоли заданий gitlab, напечатанной командой -export, до того, как gradle попытается их распечатать. Что не так?

ОБНОВЛЕНИЕ: В ci-gitlab я использую kaniko: - / kaniko / executor

1 Ответ

0 голосов
/ 01 апреля 2020

Чтобы получить переменную, она должна быть определена с помощью инструкции ARG в Dockerfile и в gitlab-ci как build-arg. Инструкция ARG устанавливает переменные, которые пользователь передает в сборщик изображений.

Dockerfile:

ARG TEST

gitlab-ci:

build:
  stage: build
  script:
    - /kaniko/executor
      --build-arg TEST="HELLO WORLD"

'variable:' section не обязательно

...