Допустим, у меня есть две сборки в моей цепочке сборок TeamCity, обе используют одну и ту же VCS root. Сборка 2nd начинается после завершения 1st ( 2nd имеет зависимость снимка от 1st ) .
Сборка 1st использует VS C маркировку , а после завершения сборки добавляет новый тег в репозиторий Git.
Проблема, с которой я столкнулся, заключается в том, что сборка 2nd не получает этот новый тег. Например, если я запустил git describe
в качестве самого первого шага сборки 2nd , он вернет «предыдущее» значение тега. Я считаю, что причиной такого «запаздывания» является тот факт, что согласно документации TeamCity:
Процесс [маркировки] происходит в фоновом режиме после завершения сборки
Итак, когда сборка 2nd выполняет проверку VCS, в репозитории Git еще нет нового тега (, поскольку он применяется в фоновом режиме, очевидно, после 2nd начинается сборка ), поэтому для сборки 2nd тег «previous» фактически является последним из доступных.
Есть ли способ запустить 2nd только сборка после маркировка VCS выполнена?
Я могу подумать о добавлении фиктивного шага с некоторым тайм-аутом, чтобы гарантировать, что процесс маркировки имеет достаточно времени для завершения sh, и только затем запустите сборку 2nd , но это выглядит уродливым костылем.