Передача URL рабочей области задания А на задание Б в Дженкинсе - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть два конвейерных задания: задание A и задание B. Мне нужно передать URL-адрес рабочего задания задания A (скажем, / var / lib / jenkins / workspace / JobA) для использования заданием B. Основная идея заключается в том, что я являюсь пытаюсь скопировать содержимое целевой папки, сгенерированной из-за сборки maven, но я не хочу использовать Плагин копирования артефактов или Плагин архива артефактов для достижения того же.

Я пытался использовать опцию «Это задание параметризовано», где задание A является входным потоком задания B, но я не могу использовать эту опцию.

Может ли кто-нибудь помочь добиться того же?

Ответы [ 2 ]

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

Я нашел способ сделать то же самое, и он работает нормально. Я сделал задание B параметризованным, используя «Этот проект параметризован», и использовал строковый параметр. enter image description here

Затем в конвейерном скрипте задания A я вызвал задание B, передав переменную env WORKSPACE. Вот сценарий декларативного конвейера для задания A:

pipeline {
agent any
stages
{
    stage ('Build JobB')
    {
        steps {
          build job: 'jobB', parameters: [string(name: 'UPSTREAM_WORKSPACE', value: "${env.WORKSPACE}")]
        }
    }
} }

Теперь в конвейере задания B вы можете попробовать вызвать переменную UPSTREAM_WORKSPACE. Вот как мы можем передать URL рабочей области и использовать его для копирования артефактов.

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

Переменная WORKSPACE является переменной env от Jenkins и указывает как /.

For eg. 

If the job name is Job_A --> the workspace value will be <jenkins_path>/Job_A

For eg. 

If the job name is Job_B --> the workspace value will be <jenkins_path>/Job_B

Таким образом, вы не можете использовать переменную WORKSPACE и ожидаете, что Job_B будет указывать на значение рабочей области Job_A.

Нижеследующее можно использовать для получения определенных свойств из вышестоящего задания.

Дженкинс - Как получить и использовать восходящую информацию в нисходящем потоке

Даже если вы захотите жестко закодировать ее в Job_B, все будет хорошо (не рекомендуется ) Также, чтобы это работало, ваш узел должен быть одинаковым для обоих заданий

...