Как передать артефакт сборки в другую работу в Jenkins

Настраивать

У меня две работы в Jenkins:

  • build master - строит код и создает артефакт
  • deploy master - это разворачивает артефакт

В настоящее время deploy master имеет этап сборки «Копировать артефакты из другого проекта» с использованием «последней успешной сборки».

build-master

Моя цель

Я хочу изменить этот шаг с «последней успешной сборки» на «указанную параметром сборки», чтобы я мог выбирать конкретную сборку при развертывании, не изменяя каждый раз конфигурацию задания deploy master.

Что я пробовал

Во-первых, я изменил значение на «определяется параметром сборки».

для конкретной сборки

Затем я установил флажок рядом с «Этот проект параметризован» и добавил строковый параметр для BUILD_SELECTOR.

параметр

Затем я выбрал сборку и ввел ввод 47, который является номером сборки из задания build master.

Кроме того, я попробовал вызов api

$.ajax({
  type: 'POST',
  url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});

Результат

Оба раза это не удалось со следующим выводом:

Started by user styfle
[EnvInject] - Loading node environment variables.
Building in workspace C:\Jenkins\jobs\deploy master\workspace
ERROR: Unable to find a build for artifact copy from: build master
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE

Вопрос

Как мне правильно настроить это, чтобы я мог указать номер сборки (или какой-либо другой идентификатор) при развертывании?

Обновить с помощью решения

Мое решение, благодаря ответу Герольда, заключалось в том, чтобы добавить параметр «Селектор сборки для копирования артефакта» и использовать новую переменную среды для связи с моим строковым параметром, который я уже добавил.

введите описание изображения здесь


person styfle    schedule 27.05.2016    source источник


Ответы (2)


В Jenkins есть только одно рабочее пространство для каждого проекта / задания. Каталоги сборок содержат только информацию о сборках и их результатах.

Корневые каталоги обоих указаны в Управление JenkinsНастроить системуДополнительно ....

Чтобы развернуть артефакт предыдущей сборки, вы должны скопировать его в другое место в build master и получить к нему доступ из deploy master позже.

ОБНОВЛЕНИЕ:

См. Встроенную справку для Какая сборкаИмя параметра:

Параметр с таким именем следует добавить в раздел параметров сборки выше. Для выбора селектора сборки существует специальный тип параметра.

Используйте этот селектор сборки для копирования артефакта вместо строкового параметра.

person Gerold Broser    schedule 27.05.2016
comment
Работа build master есть после сборки Действие архива артефактов. И я был в состоянии определить сборку по номеру путем редактирования конфигурации. Так что я знаю, что это часть работы. - person styfle; 27.05.2016
comment
@styfle The <я> Архив артефактов после сборки действие хранит указанные файлы в <mentioned system configuration>/<build no.>/archive/... доступны через http://<Jenkins>/job/<job name>/<build no.>/artifact/.... - person Gerold Broser; 27.05.2016
comment
Это URL работает. Должен ли я попробовать использовать полный URL в качестве параметра в развертывании? - person styfle; 27.05.2016
comment
@styfle Если имя артефакт не изменяет build no. должно быть достаточно. Это единственная переменная в URL. - person Gerold Broser; 27.05.2016
comment
Я попробовал номер сборки 47 в качестве параметра, и он не работает (см мой оригинальный пост). Тем не менее, посещение URL Дженкинс / работа / сборка% 20master / 47 / артефакт делает Работа. - person styfle; 27.05.2016
comment
@styfle См инлайн справку <я> Какой билд → <я> Параметр :. <я> Существует особый тип параметра для выбора селектора сборки . Используйте это вместо <я> Строка Параметр . - person Gerold Broser; 27.05.2016
comment
Давайте продолжить эту дискуссию в чате. - person styfle; 27.05.2016
comment
есть способ скопировать архивный артефакт в задании развертывания? Я использую Копирование артефакты из другого проекта но копирует разархивирован артефакт из сборки рабочей области. - person Radu; 03.04.2018
comment
@Radu См <я> Файл / Папка Копировать из Операции с файлами Плагин. - person Gerold Broser; 03.04.2018
comment
как я могу получить BuildNumber от BUILD_SELECTOR? - person Radu; 16.04.2018

Добавьте следующий по ходу проекта. «Селектор Построить для копирования Артефакт» вместо «строка параметра»

Копирование артефактов из другого проекта

Вот и все. Нажмите кнопку "Построить с параметрами" и передать номер сборки person Febin    schedule 26.01.2018