Запуск конвейера Azure на основе нескольких изменений файлов

#azure-devops #azure-pipelines

#azure-devops #azure-конвейеры

Вопрос:

Я пытаюсь запустить конвейер сборки Azure DevOps на основе одновременного изменения двух файлов в моем master репозитории со следующим триггером:

 trigger:
  branches:
    include:
    - master
  paths:
    include:
    - '**/*task.json'
    - '**/vss-extension.json'
  

Моя структура папок для этого репозитория выглядит примерно так:

 repository:

|--run-stryker
   --vss-extension.json
   --other files here ...
  |--task
     --task.json
     --other files here ...
  

Однако одновременные изменения в этих файлах не запускают мой конвейер. Что я здесь делаю не так?

Ответ №1:

К сожалению, использование подобных подстановочных знаков в триггерах CI на данный момент не поддерживается. Вы можете использовать * только в конце путей, но это работает так же, как и без этого. Подобные подстановочные знаки работают при сопоставлении файлов в задачах, но не в триггере пути. Поэтому вы должны использовать точные пути, такие как:

 trigger:
  branches:
    include:
    - master
  paths:
    include:
    - 'run-stryker/task/task.json'
    - 'run-stryker/vss-extension.json'
  

или использование только путей к папкам, таких как:

 trigger:
  branches:
    include:
    - master
  paths:
    include:
    - 'run-stryker/*' # is the same as 'run-stryker/'
  

Ссылка на документацию: подстановочные знаки в триггерах CI

Комментарии:

1. Ваше решение с полным путем работает просто отлично. Тем не менее, я не могу понять, почему мое первоначальное решение не работает, поскольку у меня есть этот */ .csproj, и этот **/*Tests.csproj отлично работает для меня на другом конвейере.