Прямо сейчас я счастливый пользователь TeamCity + Maven + Git.
У меня есть одна сборка типа mvn deploy
, которая должна запускаться при каждом коммите в Git. Все тесты запущены и все в порядке. =) * * Тысяча два
Но у этой схемы есть проблема: после запуска mvn release:prepeare
на моей машине она создает два коммита (с версиями, скажем, 1.1
и 1.2-SNAPSHOT
) в центральном репозитории Git, один из которых помечен 1.1
,
Поскольку TeamCity проверяет наличие последней версии каждые N секунд, фактически создается только последняя версия с версией 1.2-SNAPSHOT
. И этот способ сборки 1.1
фактически никогда не попадает в репозиторий Maven. Политики безопасности не позволяют мне запускать mvn deploy
с моего собственного компьютера, а развертывание репозитория Maven можно выполнить только с компьютера TeamCity.
Таким образом, я хочу запустить обе сборки против обоих коммитов на репо. Насколько я знаю, это невозможно, если в TeamCity настроена только одна сборка.
Теперь я использую обходной путь: есть дополнительная сборка, которая строит только коммиты "release", которые запускаются триггерами с регулярным выражением commit.
Другой возможный обходной путь - использование дополнительной сборки, созданной на основе специализированной ветки "release".
Но я не хочу иметь обходных путей и хотел бы заставить TeamCity запускать сборку против каждого коммита в Git. Это также поможет мне понять неудачные тесты.