Невозможно передать переменные через мост gitlab в другой конвейер

Вот мой простой файл yaml

image: my/docker/image

stages:
    - print
    - testvarbridge

variables:
    INCOMING_VAR: $ENV_VAR

print_these:
    stage: print
    script:
        - echo $INCOMING_VAR
        - export $INCOMING_VAR

testvarbridge:
    stage: testvarbridge
    variables:
        TEST_VAR: $INCOMING_VAR
    trigger: 
        project: my-project/pipeline-two
        branch: ci-cd

$ENV_VAR - это переменная в проекте для тестирования... она просто говорит "this_is_the_variable"

Когда я запускаю конвейер... этап печати правильно печатает:

echo $INCOMING_VAR
this_is_the_variable

Но когда запускается второй конвейер, он просто настроен на выполнение простой эхо-команды переменной, которая передается... это эхо:

echo TEST_VAR
$ENV_VAR

Как видите, когда этап testvarbridge устанавливает переменную TEST_VAR,, он захватывает переменную $ENV_VAR вверху как литеральную строку. Он не оценивает его и не получает значение, связанное с этой переменной. Я что-то упускаю?


person Marcus Holden    schedule 30.12.2019    source источник
comment
Я обновил свой ответ ниже: это будет реализовано, возможно, для GitLab 13.0 (май 2020 г.)   -  person VonC    schedule 10.02.2020


Ответы (1)


Об этом сообщалось 3 года назад в gitlab-org/gitlab-runner issue 1809: "Использовать переменную внутри другой переменной".

Обходной путь состоит в том, чтобы установить vars в before_script вместо variables.
Таким образом, пример, приведенный в проблеме, будет работать, если будет записан как:

before_script:
  - export VAR1="${CI_PIPELINE_ID}"
  - export VAR2="test-${VAR1}"

Обновление февраль 2020 г.: Филипп Шарьер добавляет:

вопрос не закрыт - веха 13.0 (на май 2020)

person VonC    schedule 30.12.2019
comment
Эй, я попробовал это, и он просто оказался пустым во втором конвейере. Ничего не печатается, когда я повторяю эту переменную. - person Marcus Holden; 30.12.2019
comment
@MarcusHolden Я понимаю. Выполняется предложение (gitlab.com/gitlab-org/gitlab -runner/issues/1809#note_225658576), но пока ничего не реализовано. - person VonC; 30.12.2019