Переменные среды Jenkins для зависимостей Maven pom - PullRequest
0 голосов
/ 08 мая 2018

У нас есть несколько заданий на jenkins, которые работают на иерархических зависимостях друг от друга.

Допустим, у Job2 есть зависимости от Job1 для версии pom.xml.поэтому всякий раз, когда у нас есть изменения в конце спринта для Job1, нам нужно изменить версии pom на зависимостях внутри Job2, прежде чем выпускать артефакты в конце спринта, так что это может не пригодиться, если у нас есть Job3,Job4, Job5, которые зависят от версии Job1.нам нужно изменить всю версию Job1 на всех pom.xml всех заданий, которые от нее зависят.

Итак, вопрос, есть ли способы решить эту проблему, возможно, используя переменные jenkins env?нужна помощь, как это сделать, исходя из вышеперечисленных вопросов.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Поскольку у вас будет требуемая версия в конце выполнения Job1, экспортируйте ее как переменную среды или сохраните в некотором файле на сервере сборки, например

pom_version=1.1

Теперь при запуске всех последующих заданий установите параметр заданий как «pom_version» и либо передайте этот файл, чтобы выбрать требуемый ключ / значение, либо задайте значение в предопределенном параметре.

enter image description here

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

0 голосов
/ 09 мая 2018

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

Этого можно добиться с помощью Jenkins и Maven.Настройте работу по сборке релиза следующим образом:

  1. Добавьте раздел «Pre Step» типа «Вызовите цели Maven верхнего уровня».На этом этапе вы запускаете цели versions:update-properties scm:checkin, чтобы обновить внутренние зависимости, чтобы они указывали на последнюю версию выпуска.
  2. На основном этапе сборки выполните выпуск: release:prepare release:perform -B.Это создает версию выпуска, увеличивает номер версии до следующей версии снимка, создает следующую версию снимка и проверяет ее обратно в scm.
  3. В «шаге после выполнения» снова запустите цели предварительного шага (с помощьюallowSnapshots=true) для обновления ваших зависимостей для ссылки на последнюю версию снимка.

Примеры:

enter image description here

enter image description here

enter image description here

ПРИМЕЧАНИЕ. Чтобы это работало, все задания должны попадать в один и тот же репозиторий Maven.Локально на сервере Jenkins или в вашем корпоративном Nexus.

0 голосов
/ 08 мая 2018

Вы можете использовать jenkins Parameterized Trigger Plugin для передачи переменных в последующие проекты. Плагин вики получил подробное объяснение.

...