Как создать коммит версии с тегами в Jenkins с помощью researchgate/gradle-release
Я использую Jenkins, который является единственным, которому разрешено публиковать в нашем хранилище maven, и плагин gradle-release для пометки версии и перехода к новой версии снимка. Я заметил, что помеченная версия не создавалась, потому что push происходит после того, как новая версия снимка зафиксирована - следовательно, Jenkins создает новую версию снимка и пропускает помеченную версию. Есть ли способ настроить плагин gradle-release для того, чтобы сначала сделать push после помеченной версии, а затем сделать еще один push для новой версии снимка?
1 ответ
Я посмотрел на исходный код плагина и установил его локально, чтобы увидеть, как он работает. Оказывается, что createReleaseTag
задача и commitNewVersion
задачи фактически выполняют отдельные толчки. Я также проверил коммиты и обнаружил, что у них разные метки времени. Я считаю, что, хотя наш GitLab, возможно, совершил два звонка в веб-крючок Дженкинса, короткое время между двумя коммитами незначительно, так как к тому времени, когда Дженкинс извлекает изменения для одного, инициированного createReleaseTag
, новый коммит, созданный commitNewVersion
будет уже вытащен.
Решение, которое я имею в виду, состоит в том, чтобы либо создать отдельные задания Jenkins для веток и тегов, либо ввести некоторую временную задержку между createReleaseTag
а также commitNewVersion
,
Обновление 12 января 2017 г.
Я остановился на использовании https://wiki.jenkins-ci.org/display/JENKINS/Release+Plugin где работа Jenkins была получена как из основной ветки, так и из ветки разработки. Плагин выпуска Jenkins добавил страницу выпуска, на которой можно ввести и отправить версию релиза и следующую версию снимка для выполнения ff:
- Проверить мастер
- Запустить задание по умолчанию (которое должно запускать тесты)
- Запустить задачу выпуска
- Проверьте новую отмеченную версию
- Запустить задачу публикации