Архивация артефактов не в рабочей области при сбое сборки - PullRequest
1 голос
/ 12 марта 2012

Когда шаг сборки ANT не выполняется в моей сборке, я хотел бы заархивировать журналы, чтобы определить проблему. Однако соответствующие журналы не расположены в рабочей области, поэтому я должен использовать полный путь к ним.

Стандартная функция архивации артефактов плохо работает с полными путями, поэтому сначала мне нужно скопировать журналы в рабочее пространство на каком-то этапе сборки, чтобы впоследствии я мог их заархивировать. Я не хочу включать копирующий код в оригинальный скрипт ANT (он там на самом деле не принадлежит). С другой стороны, поскольку на этапе сборки происходит сбой сборки, я не могу выполнить код, который копирует артефакты в рабочую область как отдельный этап сборки, поскольку он никогда не достигается.

Я рассматриваю возможность использования опции ANT -keep-going, но как я тогда провалю сборку?

Любые другие идеи (например, плагины артефактов, которые корректно обрабатывают полные пути)?

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

1 Ответ

3 голосов
/ 12 марта 2012

Я бы рекомендовал использовать плагин Flexible Publish в сочетании с плагином Условный сбор * .

Плагин Flexible Publish позволяет планировать этапы сборки ПОСЛЕ сборкишаги нормально бегут.Это позволяет вам отследить как успешные, так и неудачные сборки и выполнить что-то - скажем, скрипт, который копирует файлы из ВНЕШНЕГО рабочего пространства ВНУТРИ рабочего пространства.Плагин Conditional BuildSet позволяет условно выполнять шаги, чтобы они выполнялись только при сбое сборки.Используя эти два плагина, вы можете скопировать файлы в рабочую область после сбоя, а затем заархивировать их с помощью обычных механизмов Jenkins.

...