Continuous delivery и сборка мавеном
Приветствую!
Есть многомодульный мавеновый проект. Собирая проект для smoke test env, хочу деплоить его артефакты в репозиторий, дабы потом скачать их оттуда и выкатить самую свежую сборку на сервак.
Следуя заветам continuous delivery, я на каждый комит делаю сборку с тестами и т.п.
Примерный флоу такой

app(c1), app(c1 c2) - это сборки с вошедшими коммитами.
deploy app(...) - это кто-то жмет кнопку, чтобы задеплоить на каком-то окружении (действие асинхронное)
В результате, мне надо иметь возможность брать для деплоя (на первый в цепочке окружений staging) последний из успешно собранных билдов. Брать мне его хорошобы из нексуса. Вопрос в том, что мне туда класть - snapshot или release?
Как известно, любой выложенный на staging билд является потенциальным кандидатом на релиз в продакшен. Поэтому он по хорошему должен быть релизнут (инкрементирована версия приложения в мавене и все сопуствующее release плагину). Релизить на каждый собранный коммит несколько накладно из-за проблем с релиз плагином - он там правки в код вносит, девелоперам придется мерджится после такой сборки, плюс сложно организовать и поддерживать это в автоматическом режиме (многомодульный проект, где один артефакт зависит от другого в версии snapshot).
Snapshot-ы меня напрягают из-за того, что я не могу откатиться на предпоследнюю версию (снапшот перетрется в нексусе), только пересобирать из тэга, и обратно из закидывать в некусус.
Как вы решаете подобную проблему?
Есть многомодульный мавеновый проект. Собирая проект для smoke test env, хочу деплоить его артефакты в репозиторий, дабы потом скачать их оттуда и выкатить самую свежую сборку на сервак.
Следуя заветам continuous delivery, я на каждый комит делаю сборку с тестами и т.п.
Примерный флоу такой
app(c1), app(c1 c2) - это сборки с вошедшими коммитами.
deploy app(...) - это кто-то жмет кнопку, чтобы задеплоить на каком-то окружении (действие асинхронное)
В результате, мне надо иметь возможность брать для деплоя (на первый в цепочке окружений staging) последний из успешно собранных билдов. Брать мне его хорошобы из нексуса. Вопрос в том, что мне туда класть - snapshot или release?
Как известно, любой выложенный на staging билд является потенциальным кандидатом на релиз в продакшен. Поэтому он по хорошему должен быть релизнут (инкрементирована версия приложения в мавене и все сопуствующее release плагину). Релизить на каждый собранный коммит несколько накладно из-за проблем с релиз плагином - он там правки в код вносит, девелоперам придется мерджится после такой сборки, плюс сложно организовать и поддерживать это в автоматическом режиме (многомодульный проект, где один артефакт зависит от другого в версии snapshot).
Snapshot-ы меня напрягают из-за того, что я не могу откатиться на предпоследнюю версию (снапшот перетрется в нексусе), только пересобирать из тэга, и обратно из закидывать в некусус.
Как вы решаете подобную проблему?
