Copy Artifakt из другого плагина проекта не копирует артефакты

У меня есть 2 процесса сборки. один для компиляции нашего проекта delphi, второй для развертывания артефактов на ftp-сервере. Для хранения артефактов я использую плагин "Развертывание артефакта".

как описано в некоторых других постах, здесь скопируйте-артефакты-от-продвигаемого-сборки или как-то-продвинуть-конкретный-номер-сборки-от-другого-в-работе-jenkins, я установил плагин продвижения, который запускает сборка / вызов по другому проекту.

пока все вроде бы нормально. Задание развертывания запущено. но сразу после запуска задание на развертывание не выполняется с комментарием "konnte nicht auf vorgelagerten Artefaktbereich zugreifen. Archiviert das Quellprojekt Artefakte?" или "не удалось получить доступ к вышестоящей области артефактов. Является ли вышестоящий проект архивацией артефактов"? но в журнале компиляции говорится:

ArtifactDeployer] - запуск развертывания с последующего действия...
[ArtifactDeployer] - 398 файлов скопировано из 'C:\Daten\jenkins\jobs\Integra-2.2.4.SP_P1\workspace' в '\\titan\IntegraWWS2\Deploy\2.2.4.SP_P1\2015-08-17_13-42-38\ Bin32.
[ArtifactDeployer] - Остановка развертывания после действия...

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

Для определения конкретной сборки в разделе "Копировать артефакты из другого проекта" я пробовал различные версии:

  • Использование параметра из вышестоящего задания
  • Опция "Построение вверх по течению, которая запустила эту работу"

никто не работал. И я уверен, что это не проблема ограничения доступа Windows.

2 ответа

Решение

"Artifact Deployer" не является основным действием "Архивация артефактов", которое описано в ваших связанных ответах (один из них мой).

Чтобы использовать эти описанные методы, вам нужно использовать действие по умолчанию "Архивировать артефакты" после сборки. Этот метод будет:

  • Храните артефакты на самом сервере Jenkins в структуре каталогов задания.
  • Сделать артефакты доступными через http://$JENKINS_URL/job/$JOB_NAME/<build_number>/artifact
  • Вышеуказанное расположение может быть использовано плагином "Копировать артефакты".
  • Вкратце: Jenkins (и другие плагины) знают стандартное местоположение, где находятся артефакты.

Плагин "Artifact Deployer":

  • Копирует артефакты в нестандартное (удаленное) местоположение
  • Дженкинс (и другие плагины, такие как "Копировать артефакты") не знают, где хранятся ваши артефакты.

Ваше решение

Если нет особой причины, по которой вы используете плагин "Artifact Deployer" для удаления артефактов от Jenkins, то вам следует рассмотреть возможность использования действия по умолчанию "Архивировать артефакты" после сборки.

Если есть причина хранить артефакты вдали от Jenkins (учет размера, целостности, артефакта и т. Д.), То вам нужно настроить свой собственный метод "getter", чтобы перенести ваши артефакты из того места, где вы их сохранили, в рабочее пространство текущей сборки.,

В плохих словах ArtifactDeployer Плагин изменяет место сохранения ваших артефактов. Это, очевидно, уже делается в качестве шага работы по компиляции. Если вы хотите разделить компиляцию и развертывание, вам следует

  • не использовать ArtifactDeployer плагин в вашей работе компиляции
  • пусть задание компиляции создает стандартные артефакты
  • использовать CopyArtifact подключаемый модуль ( https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin) в задании развертывания для доступа к скомпилированным артефактам.
  • развернуть артефакты (скопированные на предыдущем шаге) в ваше любимое место (вы можете пометить скопированные артефакты как новые артефакты в задании развертывания и использовать ArtifactDeployer плагин для их публикации)
Другие вопросы по тегам