Appveyor строит для всех веток вместо указанных

В настоящее время у нас есть три отдельных проекта приложений, по одному для каждой ветки в нашем репозитории.

Наша проблема следующая: Appveyor игнорирует мой фильтр на ветках github. Каждый раз, когда мы делаем фиксацию для master, stage или dev, он основывается на всех трех проектах, а не на одном, для которого мы сделали фиксацию.

Каждая ветка имеет уникальный файл appveyor.yml, который выглядит следующим образом:

Это appveyor.yml для разработчиков

version: 0.0.{build}
branches:
  only:
  - dev
image: Visual Studio 2017
configuration: dev
before_build:
  - nuget restore
build:
  project: Core.Api.sln
  publish_wap: true
  verbosity: minimal
build_script:
  - ps: .\build.ps1
after_build:
  - cmd: dotnet publish src\Core.Api --output %appveyor_build_folder%\dist
test: off
artifacts:
- path: dist
  name: dist.web
deploy:
...

Когда мы делаем коммит, он основывается на всех проектах. Есть идеи??

введите здесь описание изображения


person Rovdjuret    schedule 15.08.2017    source источник


Ответы (1)


Это происходит потому, что для каждого проекта настроен Webhook на GitHub, и каждый раз, когда кто-то делает коммит, каждая сборка проекта запускается webhook. Затем, независимо от того, какая ветка настроена для проекта (это только ветка по умолчанию для ручных сборок/сборок через API), AppVeyor считывает appveyor.yml из ветки, в которой была сделана фиксация.

Решение состоит в том, чтобы использовать либо альтернативные имена файлов YAML или альтернативное расположение файла YAML.

С альтернативными именами файлов YAML вы можете иметь что-то вроде файлов appveyor-dev.yml, appveyor-stage.yml и настроить определенный проект AppVeyor для использования определенного файла. С альтернативным расположением файла YAML это в основном то же самое, но в другом месте, чем репо. Лично мне больше нравится альтернативное расположение файла YAML из-за меньшего количества дублирований и потенциальных проблем слияния.

В обоих случаях, когда веб-перехватчик в ветке dev приходит к проекту stage, он все равно будет читать appveyor-dev.yml и выполнять правильную фильтрацию.

person Ilya Finkelsheyn    schedule 15.08.2017
comment
Спасибо, я также выбрал альтернативный способ расположения файла YAML. Работает как шарм! - person Rovdjuret; 16.08.2017