Teamcity: как оформить заказ в корневом каталоге, но смотреть изменения только из подкаталога - PullRequest
0 голосов
/ 30 января 2019

Мы используем Teamcity 2018 вместе с TFS.

У нас есть один проект, в котором структура выглядит следующим образом

Root                <---- We want to checkout the whole Root-directory
     \ProjectA      <---- We want to show changes only from the sub-directory
     \ProjectB
     \ProjectB

Мы хотели бы наблюдать за изменениями из Root \ ProjectA -директория и отображать только те изменения, которые были сделаны в этом каталоге.

Однако мы бы хотели извлечь весь каталог Root и запустить нашу сборку оттуда.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 14 марта 2019

Правила триггеров могут помочь вам в этом.В вашем триггере VCS вы можете указать набор правил для фильтрации или исключения различных условий, которые приведут к тому, что ваша конфигурация сборки будет триггер .Они не зависят от ваших правил VCS, и эти правила будут обрабатывать то, что вы выберете для checkout как обычно.Синтаксис правила выглядит следующим образом:

+|-[:[user=VCS_username;][root=VCS_root_id;][comment=VCS_comment_regexp]]:Ant_like_wildcard

Ant_like_wildcard - это элемент, представляющий особый интерес для вас в этом случае, поскольку вы можете использовать их (среди прочего) для фильтрации иликонкретного каталога.

Вот пример из документации TeamCity:

"-: lib / **" предотвращает запуск сборки при обновлении каталога "lib"из источников сборки

Используя ваш пример, ваше правило триггера будет выглядеть примерно так:

+:ProjectA/**

Вы можете использовать одно включение, а не несколько исключенийиз-за того, как TeamCity обрабатывает эти типы правил:

При указании правил обратите внимание, что как только вы введете любое правило "+", TeamCity изменит неявное значение по умолчанию с "включить все"«исключить все».

Вы можете найти полную документацию по TeamCity VCS Trigger здесь

...