Передача переменных среды из родительского задания в дочернее задание Jenkins pipe

У меня две работы на конвейере.

  1. Родительское задание: это задание содержит триггер Gerrit и основывается на каждом созданном наборе исправлений. После создания этого задания я вижу переменные среды Gerrit в разделе переменных среды сборки.

  2. Дочернее задание: выполняется только в том случае, если gerrit_branch не равно master.

Я хочу передать все переменные среды gerrit этому заданию, как родительское задание.

Есть ли способ передать всю переменную env дочернему заданию.


person sam    schedule 15.08.2020    source источник


Ответы (1)


Я взял два задания конвейера: Конвейер1 (родительское задание) и конвейерБ (дочернее задание).

Конвейер1: я выполняю проверку SCM из github, где присутствует Jenkinsfile, и в Jenkinsfile я вызвал конвейер B (дочернее задание), где я передаю переменную среды родительского задания (GIT_BRANCH).

Конфигурация Pipeline1 введите здесь описание изображения

Jenkinsfile of Pipeline1

pipeline {
agent any
stages
{
    stage ('Build JobB')
    {
        steps {
           sh 'env'
           build job: 'pipelineB', parameters: [string(name: 'GITHUB_BRANCH', value: "${env.GIT_BRANCH}")]
       }
     }
   } 
 }

GIT_BRANCH — это переменная окружения. (https://plugins.jenkins.io/git/#environment-variables )

pipelineB: я использовал параметр Эта сборка параметризована, чтобы зафиксировать значение значения среды, передаваемое родительским заданием, т. е. Pipeline1. Затем использовал переменную в сценарии конвейера.

Конфигурация конвейераB введите здесь описание изображения введите здесь описание изображения

Пожалуйста, попробуйте.

person Sourav Atta    schedule 16.08.2020