Когда я создаю новый тег git, обе сборки запускаются, даже если тег может быть связан только с изменениями, основанными на моем клиентском коде.
Если фильтрация тегов игнорирует пути, или Должен ли он работать так же, как ветви?
Извините, но я боюсь, что вы столкнулись с ожидаемым поведением триггеров CI. И да, вы правы, что tag filtering is ignoring paths
, когда теги используются в сочетании с фильтрами ветвлений, которые включают пути к файлам.
Пожалуйста, ознакомьтесь с подсказкой Note в официальном документе :
Если вы укажете теги в сочетании с фильтрами ветвлений, которые включают пути к файлам, триггер сработает, если фильтр ветвей удовлетворен и удовлетворен либо тег, либо фильтр путей.
Причина проблемы:
Вот почему в вашем сценарии запускаются обе сборки. Поскольку теперь вы используете теги в сочетании с фильтрами ветвей и фильтрами путей к файлам, и branch filter ok + tag ok
, и branch filter ok + path ok
могут запускать сборку.
Поведение:
Если тег не создан, branch filter ok + path ok
будет работать как client code triggers client build
и api code triggers api build
. И при создании указанного тега c причина, по которой branch filter ok + tag ok
всегда выполняется, запускает обе сборки.
Как вы уже упоминали выше, , используя в качестве обходного пути больше описательных тегов не плохой выбор в этой ситуации. Кроме того, если вам нужна такая функция, как одновременная работа трех фильтров, не стесняйтесь поделиться своим мнением, предложив эту функцию на нашем User Voice Forum . Поделитесь ссылкой здесь и заинтересованные участники проголосовали бы за вас. Ура!