Я слежу за Git flow: как настроить процесс выпуска в один клик в Jenkins?, чтобы реализовать процесс выпуска с конвейером Jenkins. Однако я не уверен, что мне делать, чтобы сбросить ветку разработки, если что-то выйдет из строя.
Это часть моей стадии конвейера:
try {
sh "mvn -f jgitflow:release-start -B -U -DskipTests"
try {
sh "mvn -f jgitflow:release-finish -B -U -DskipTests -Dmaven.javadoc.skip=true -DnoDeploy=false"
} catch(err) {
currentBuild.result = 'FAILURE'
println("Cannot finish a release, undoing...")
//undoing
return
}
} catch(err) {
currentBuild.result = 'FAILURE'
println("Release failed")
return
}
Должен ли я обнаружить ветвь release (с regexp) и удалить ее, а затем выполнить git reset --hard HEAD~1 для сброса ветки develop?
Есть ли другие способы сделать это?
Я просто хочу восстановить предыдущее состояние репозитория, если что-то не получается, например. Я не хочу, чтобы коммит увеличивал версию pom для моментального снимка в ветке разработки, и я больше не хочу сохранять ветку выпуска.
Для ветки выпуска или любой другой ветки, если она вам не нужна. просто удалите это. Чтобы удалить его локально: git branch -d feature/login и удалить с пульта: git push origin --delete feature/login. И по другому вопросу: не рекомендуемый стандартный процесс, чтобы попытаться удалить в случае сбоя из удаленного репо. Попробуйте сначала собрать проект локально, прежде чем нажимать
Так следует ли мне отключить автоматическое нажатие с помощью jgitflow, затем выполнить операцию выпуска и запуска, наконец, если все будет в порядке, отправить локальные изменения на удаленный? Такой же поток для релиз-финиша? Я не эксперт по мерзавцам, извините.
Извините, я не могу посоветовать, не имея представления о вашем местном окружении. Но весь конвейер code / jenkins, который вы поделили в OP, будет выполняться для кодов, которые достигают репозитория git. То, что я делаю и многие другие, - это собирать код локально на моей рабочей станции еще до того, как я нажимаю, например mvn install. И если это выглядит нормально locallu, сделайте git push на удаленный компьютер, чтобы поделиться им с соавторами.
Я думаю, что вы помогли мне разобраться в настоящей проблеме, спасибо.





основная цель в вопросе, похоже, не связана с git flow. Больше о том, как использовать Git. Если ваш код компилируется не без ошибок, вы исправляете код и перестраиваете его. Как вы думаете, зачем делать сброс --hard HEAD ~ 1? Это удалит вашу историю и станет еще более опасным, если вы перейдете к удаленному