Как обновить идентификатор модуля сборки артефакта
Я использую Jenkins CI(одно конвейерное задание) для отправки разных файлов в JFrog Artifactory.
Для каждой сборки я публикую информацию о сборке в Artifactory. Но каждая сборка имеет одинаковый идентификатор модуля.
Например: в Artifactory Repository Browser выберите любой артефакт, затем перейдите на вкладку Build, затем он показывает все сборки вместо информации о соответствующих сборках артефактов.
Поэтому я хотел бы знать, как изменить идентификатор модуля артефакта при публикации информации об артефакте в Artifactory.
1 ответ
Информация о сборке и хранилище артефактов относятся к разным механизмам. Информация о сборке связана только с артефактами в том смысле, что вы можете определить, какие артефакты создаются в сборке и какие артефакты являются зависимостью сборки. Идентификатор модуля не связан с информацией о сборке. Идентификатор модуля определяется макетом хранилища, в котором хранится Артефакт. Смотрите документацию по jfrog здесь: https://www.jfrog.com/confluence/display/RTF/Repository+Layouts
Вы не можете изменить идентификатор модуля. Artifactory назначает идентификатор модуля на основе макета хранилища. Это означает, что путь к артефакту имеет значение для определения идентификатора модуля. Например макет хранилища
[org]/[module]/[module]_[base_rev].[ext] предоставит идентификаторы модулей для любого артефакта, сохраненного по этому шаблону, как [org]:[module]:[base_rev].
Артефакты связаны со сборками как с помощью свойства build.name, build.number для артефакта, так и путем публикации информации о сборке из файла.json. Файл.json должен содержать раздел, обозначающий, какие артефакты были получены при сборке.
В общем, похоже, что вам нужно убедиться, что каждый артефакт развертывается по уникальному пути в артефакте с установленными свойствами build.name и build.number. Другая вещь, на которую стоит обратить внимание - это хеш файла. оно должно совпадать в публикуемой информации о сборке. Таким образом, если хеш файла не отличается, это означает, что нет никаких изменений в артефакте из предыдущей сборки.
Я не знаю, насколько это поможет, но есть много нюансов, которые приводят в соответствие артефакты и сборки. Вы упомянули об использовании Jenkins, рассматривали ли вы использование плагина Jenkins Artifactory. Он должен позаботиться о многих из этих работ для вас, хотя мы используем Bamboo, поэтому я не настолько знаком с тем, как он отличается.