Как заставить TeamCity встроить каждый коммит в GIt? - PullRequest
0 голосов
/ 05 июля 2011

Прямо сейчас я счастливый пользователь 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. Это также поможет мне понять неудачные тесты.

1 Ответ

0 голосов
/ 05 июля 2011

Проблема с возможностью сборки объектов из одной единственной сборки в TeamCity заключается в том, что эта конкретная сборка привязана к ветви (предположим, что это ствол).Однако, когда Maven делает release:prepare, он фактически создает тег.Когда он создает этот тег, у вас нет сборки для него, так как ваш существующий проект привязан к исходной ветви.

Я бы предложил либо изменить политику вашей компании, либо создать отдельные сборки для каждого из них.тег.Мы привыкли использовать TeamCity, и у нас была ваша проблема.Я менеджер по сборке компании, а также занимаюсь выпуском.Я полагаю, что если исходная сборка прошла правильно на CI-сервере, то для вас вполне нормально делать mvn release:prepare release:perform и даже mvn deploy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...