Как установить триггер сборки Mercurial VCS для TeamCity, который игнорирует операции с метками

Я пытаюсь настроить триггер сборки для TeamCity, используя Mercurial как VCS. Сейчас триггер выглядит следующим образом:

+:/**

Этот триггер срабатывает при совершении изменений. Тем не менее, у меня есть настройка TeamCity для маркировки каждой сборки в VCS. Процесс маркировки запускает описанный выше триггер сборки, поэтому сборка попадает в цикл.

Может кто-нибудь предложить триггер сборки VCS, который отфильтрует процесс тегирования?

Ответы

Ответ 1

Добавление шаблона триггера:

-:/.hgtags

отфильтровывает файл .hgtags из триггера сборки. Это файл, который изменяется, когда источник помечен TeamCity. Когда этот файл исключен, операции пометки не будут запускать триггер сборки.

Ответ 2

Teamcity и приведенный выше синтаксис мне чужды, но если у вас есть возможности сценариев, вы можете проверить, является ли набор изменений тегом только для изменений, выполнив что-то вроде этого:

if [ "$(hg log -r tip --template '{files}')" = '.hgtags' ]; then
    echo tag only
else
    echo other stuff too
fi

Просто замените tip на любой набор изменений, о котором вы собираетесь действовать, и измените операторы эха на exit, a make или hg tag, если необходимо либо пропустить сборку, либо просто пропустите создание нового тега, если последний набор изменений был только тегом.