Image

Imagevashchenkov wrote in Imageru_java

Category:

Maven + VCS + CI

Всем добрый день.

Есть вопрос не совсем по теме, но может кто знает как сделать.
Развёрнут сервер TeamCity для осуществления сборок проекта. Сейчас всё работает. Но сейчас задача меняется сборка релиза будет происходить в несколько этапов:
1. Сборка релиза для тестирования
2. Тестирование и выявление критических ошибок в тестовом релизе.
3. Исправление критических ошибок и выпуск подрелизов
4. После исправление всех критических ошибок выпуск основного релиза.

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

Я вижу решение таким:
maven отвечает за инкрементирование номера версии релиза. Допустим через properties файл. Соответственно. На момент сборки тестового релиза этот номер инкрементируется, и используется для простановки метки в VCS. При обновлении тестового релиза всё вытаскивается из VCS с использованием префикса и номера релиза в properties файле. После выхода основного релиза номер увеличивается ставится метка с номером релиза и префиксом указывающим на выпуск основгого релиза. ноер релиза не инкрементируется.

Как прокинуть свойство из maven в teamcity - я разобрался, но вот какой мне инструмент использовать для инкрементации номера релиза?
Может кто поможет.
При попытке использовать Ant вставку в виде <propertyfile ****/> maven ругается на отсутствие соответствующего класса, хотя он однозначно есть. Если использовать maven-build-number-plugin - он почему то не инкрементирует номер версии. При написании простого своего плагина ругается, что не может скопировать одни properties в другие (стек трейс дома).