Ответ 1
Я считаю, что нашел решение.
Резюме
- Не использовать Указание по permalink
- Использовать специальную сборку и установить номер сборки
${PROMOTED_NUMBER}
Решение
Предпосылки
- Должен быть установлен плагин Копировать артефакт.
- Архивировать артефакты, по которым вы хотите получать рекламные акции
- В Действия после сборки добавьте действие Архивировать артефакты и установить файлы для архивации, к чему вы хотите, чтобы ваша реклама была доступна.
- Не отбрасывать старые артефакты
- В Конфигурации заданий снимите флажок "Отменить старые сборки" или убедитесь, что его настройки будут хранить артефакты до тех пор, пока вы хотите продвигать свои сборки.
Настройка продвижения:
Создайте свою рекламируемую сборку с именем и критериями, как обычно.
В разделе "Действия" добавьте действие Копировать артефакты из другого проекта и установите эти значения.
- Название проекта:
${PROMOTED_JOB_NAME}
- Какая сборка: конкретная сборка
- Номер сборки:
${PROMOTED_NUMBER}
- Артефакты для копирования:
path/to/your/artifacts/**
- Цель:
${BUILD_TAG}
Затем добавьте действия, которые вы действительно хотите сделать. Например, добавьте действие Архивировать артефакты, чтобы сохранить артефакты. Не забудьте указать свои пути с помощью ${BUILD_TAG}
, например. ${BUILD_TAG}/path/to/your/artifacts/**
Заметки о том, почему
Копирование артефактов
Как вы, наверное, уже знаете, продвижение не должно рассчитывать на доступ к содержимому рабочей области сборки. Он может быть выполнен на другом сервере и может иметь доступ к отсутствию рабочего пространства вообще или рабочей области из старой или более новой сборки. Поэтому необходимо скопировать артефакты, которые вы хотите использовать, в текущую рабочую область.
Это также причина, по которой задано значение Target. Рабочее пространство может быть опробовано с помощью других сборок или рекламных акций. Установка цели на ${BUILD_TAG}
Предотвращает конфликты с файлами, уже находящимися в рабочей области, создавая папку, уникальную для процесса продвижения.
${PROMOTED_ *} переменные
Как вы утверждаете, обычные переменные сборки относятся к самому процессу продвижения, но плагин Promoted Build определяет некоторые переменные среды ссылаясь на фактическую сборку.
Permalinks
В контексте Jenkins permalinks ссылаются только на специальные ссылки, которые указывают на последнюю сборку какого-либо типа или последней рекламы. Вот почему вы всегда будете получать последнюю версию
В моей версии Jenkins выпадающее меню заменяется текстовым полем. Написание URL-адреса для определенной сборки типа http://jenkins/job/myjob/59/
не распознано как одно из специальных постоянных ссылок, а копирование будет таким образом сбой.