Как говорится в названии, я пытаюсь получить работу по автоматическому выпуску, работающую над Hudson. Это проект Maven, и весь код находится в Git. Вручную, я делаю выпуск на своей личной машине так:
git checkout master
mvn -B release:prepare release:perform
Это прекрасно работает. Плагин релиза Maven корректно помещает тег релиза в исходный репозиторий, а также следующий коммит, который ударяет версию на следующий SNAPSHOT.
Однако, когда я запускаю эту же работу Maven через Hudson (либо создав собственное задание "release", либо используя M2 Release Plugin), это не работает так хорошо. Тег релиза выталкивается в исходный репозиторий, и релиз выталкивается в наш репозиторий Nexus, но последующая фиксация, которая ударяет версию на следующий SNAPSHOT, не исчезает. Кроме того, ветвь "master" в исходном репозитории вообще не изменяется. Однако я просмотрел рабочую область Хадсона для этой работы, и версия была обновлена.
Посмотрев на результат задания Хадсона, похоже, что плагин Git фактически не проверяет "мастер", а скорее его SHA1 id. То есть, если метка ветки "master" указывает на фиксацию "f6af76f541f1a1719e9835cdb46a183095af6861", Хадсон делает
git checkout -f f6af76f541f1a1719e9835cdb46a183095af6861
вместо
git checkout -f master
В результате изменения, которые делает плагин выпуска Maven, фактически не находятся в какой-либо ветке (конечно, не на "master" ), и эти изменения не попадают в исходный репозиторий. Он работает на правильном коде, но бухгалтерия - мудрый, изменения, похоже, теряются, потому что ни одна метка отрасли не указывает на них.
Кто-нибудь получил сборку Hudson + Git + Maven Release Plugin для правильной работы? Есть ли какая-то дополнительная конфигурация, где я могу установить, чтобы это произошло? Или это ошибка в плагине Hudson Git?
Спасибо заранее.