Архивировать артефакты в Jenkins

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

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

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

изменить: Хорошо, поэтому я попытался сделать что-то вроде этого:

enter image description here

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

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

4 ответов


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

общее правило-результат построения в build, target или


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

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


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

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


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

настройки, которые работают для меня, должны ввести 1 для "Max # сборок для хранения артефактов" и затем, чтобы иметь действие после сборки для архивирования артефактов. Таким образом, все артефакты из всех сборок будут архивированы, вся информация из сборок будет сохранена, но только последняя сборка сохранит свои собственные артефакты.

отбросить старые варианты сборки