Архивировать артефакты в Дженкинс - PullRequest
122 голосов
/ 28 апреля 2011

Может кто-нибудь объяснить мне идею артефактов в процессе сборки?

У меня есть каталог рабочей области, в котором я проверяю код для компиляции и запуска моих скриптов ant и т. Д.В конце, в моем случае, я получаю файл jar, который готов к установке.Считается ли это артефактом?

Где я должен указать сценарию сборки файл jar?В каталоге рабочей области?Мой файл JAR получает уникальное имя файла в зависимости от переменных, таких как BUILD_ID и так, как я могу сказать Jenkins, какой файл JAR выбрать?

РЕДАКТИРОВАТЬ: Хорошо, поэтому я попытался сделать что-то вроде этого:

enter image description here

Путь еще не существует в моей рабочей области, потому что сценарий сборки должен его создавать, и, конечно, файлы .jar и .properties отсутствуют, потому что ониеще не было сгенерировано.Почему это дает мне ошибку тогда?Похоже, я что-то упустил.

Кроме того, Дженкинс удаляет артефакты после каждой сборки (не архивные артефакты, я знаю, что могу сказать, чтобы они удалялись)?В противном случае он довольно быстро засорит жесткий диск.

Ответы [ 4 ]

64 голосов
/ 28 апреля 2011

Ваше понимание верно, артефакт в смысле Дженкинса является результатом сборки - предполагаемый результат процесса сборки.

Общепринятым условием является помещение результата сборки в * 1003Каталог *, target или bin.

Архиватор Jenkins может использовать глобусы (target/*.jar), чтобы легко подобрать нужный файл, даже если у вас есть уникальное имя для каждой сборки.

11 голосов
/ 28 апреля 2011

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

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

7 голосов
/ 09 января 2015

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

Нет, Хадсон / Дженкинс сам по себе не очищает рабочее пространство после сборки. В процессе сборки могут быть действия, которые стирают, перезаписывают или перемещают артефакты сборки из того места, где вы их оставили. В расширенной настройке проекта (которая должна быть расширена) имеется параметр «Очистить рабочее пространство перед сборкой», который удалит рабочее пространство в начале новой сборки.

1 голос
/ 28 ноября 2017

В Jenkins 2.60.3 есть способ удалить артефакты сборки (не архивные артефакты), чтобы сэкономить место на жестком диске на машине сборки.В разделе «Общие» установите флажок «Отменить старые сборки» со стратегией «Log Rotation», а затем перейдите к ее дополнительным параметрам.Появятся еще две опции, связанные с сохранением артефактов сборки для задания в зависимости от количества дней или сборок.

Для меня работают следующие настройки: введите 1 для «Максимальное количество сборок, которое будет содержать артефакты», а затемиметь действие после сборки для архивации артефактов.Таким образом, все артефакты из всех сборок будут заархивированы, вся информация из сборок будет сохранена, но только последняя сборка сохранит свои собственные артефакты.

Отмена параметров старых сборок

...