Как скопировать артефакты из других заданий Jenkins из конвейера? - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу скопировать артефакт сборки из другого задания Jenkins с помощью плагина CopyArtifact.

Артефакт создан с помощью следующей команды:

archiveArtifacts artifacts: '_Builds/BuildRelease/**', fingerprint: true
build 'Release Installer'

В задании 'Release Installer'Я пытаюсь получить заархивированные артефакты, используя следующую команду в конвейере:

  stages {
    stage('Get Artifacts') {
        steps {
            step([  $class: 'CopyArtifact',
                    projectName: "MyBuildJob",
                    filter: "_Builds/BuildRelease/archive.zip"
            ])
        }
    }

Когда задание «Release Installer» выполняется, артефакт не найден.Обе работы выполняются на одном и том же узле сборки.

Я думаю, что в моем правиле фильтра что-то отсутствует.К сожалению, доступная документация Jenkins немного тонка в деталях и примерах.

1 Ответ

0 голосов
/ 17 декабря 2018

Я считаю, что по умолчанию используется копирование с последней успешной работы.Тем не менее, похоже, что вы в настоящее время хотите получить работу вверх по течению.Вот фрагмент кода:

copyArtifacts fingerprintArtifacts: true, projectName: 'MyBuildJob', selector: upstream()

Я сгенерировал этот код с помощью генератора фрагментов.Он должен существовать на левой панели классического вида работы.Текст кнопки гласит «Синтаксис конвейера», а URL-адрес - «my.jenkins.instance.com/pipeline-syntax/"

Указывать фильтр артефактов не обязательно, он скопирует все из них.Однако, если вы хотите сохранить фильтр:

copyArtifacts filter: '_Builds/BuildRelease/archive.zip', fingerprintArtifacts: true, projectName: 'MyBuildJob', selector: upstream()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...