Я пытаюсь использовать плагин Publish Over SSH для публикации многих видов артефакта сборки на внешний сервер. Примерами артефактов сборки являются скомпилированные сборки, выход XML из тестирования и вывод JSON из linting.Jenkins: Опубликовать через SSH после неудачной сборки
Если тестирование или перевязка приводит к ошибкам, сборка завершится ошибкой или будет нестабильной. В случае неудачной сборки, Публикация через SSH плагин не будет копировать сборки артефактов, запись в консоли:
SSH: Current build result is [FAILURE], not going to run.
Я не вижу причин, почему я не хотел бы опубликовать эту информацию, если она существует, и я хотел бы продолжать сообщать об ошибках как сбоях сборки. Итак, есть ли способ заставить Дженкинса публиковать артефакты сборки, даже если задание помечено как сбой?
Я думал, что могу использовать Flexible Publish, чтобы заставить это, обернув публикацию по SSH в состоянии «всегда», но это дало такой же результат, как и при сбое сборки.
Я могу думать о нескольких обходных:
а) сохранить статус сборки в переменной окружения; заставить статус УСПЕХА; выполнить шаг публикации; восстановить статус сборки из переменной окружения с помощью java jenkins-cli.jar set-build-status $STORED_STATUS
ИЛИ
б) Написать Баш скрипт для выполнения шага публикации вручную с помощью SSH, вырезая Публикация через SSH плагин вообще
Перед тем, как двигаться вперед с любым из этих решений (ни один из которых мне не нравится), есть ли какая-то конфигурация, которую мне не хватает?
Я работал над этой проблемой, используя второй вариант, который я предписал выше. Простая команда 'rsync' в задаче Post Script в моей работе Jenkins. Если никто не может предложить исправление для плагина, я добавлю это как ответ через несколько дней. – laffoyb