Настройка компакт-диска для приложения vNext с новым агентом сборки VSO

Я пытаюсь настроить непрерывное развертывание для своих приложений vNext с помощью нового агента сборки Visual Studio Online.

Обратите внимание: я исключил папку /wwwroot из системы управления версиями. По умолчанию Grunt обрабатывает все конкатенации CSS + JS + минификацию и помещает их в папку. Я установил привязку перед сборкой для этой задачи, так что вы можете просто щелкнуть правой кнопкой мыши и опубликовать приложение. Это нормально работает, поскольку при публикации выполняется сборка, которая запускает задачу Grunt для подготовки распределения.

Однако агент сборки VSO, похоже, не запускает задачу Grunt. Следовательно, на сервере сборки нет /wwwroot содержимого, и поэтому развертывание не работает.

Как я могу это исправить? ИЛИ - я должен просто включить папку /wwwroot в систему управления версиями?


person Jochen van Wylick    schedule 06.08.2015    source источник


Ответы (1)


После целого дня выяснения этого - у меня есть решение. Однако я боюсь, что это будет временное решение. Как только будут выпущены новые задачи сборки VSO, это станет намного проще.

Вот что я сделал:

  1. Я начал с установки последней версии Node на сервер сборки, что, казалось, ускорило процесс и избавилось от некоторых странные предупреждения. Также - я обновился до последней версии агента сборки (см. внизу этой страницы как). Убедитесь, что узел находится на пути, и глобально установите bower и grunt (npm install -g bower и npm install -g grunt-cli)

  2. Затем я начал с нового шаблона сборки с нуля в Visual Studio онлайн, правильно установил привязки Git и добавил первый шаг: Установка NPM (добавьте шаг - выберите «Установка NPM»). Установите рабочий каталог в папку вашего .xproj

  3. Следующий шаг: добавьте шаг «Grunt build». Направьте его на свой Gruntfile.js + установите рабочий каталог в тот же каталог. Я выполняю задание "ворчание" build, потому что оно пришло с шаблоном yeoman. Я изменил так, чтобы он выводил все в папку /wwwroot.

  4. Добавьте шаг Visual Studio Build, который собирает части проекта. Добавить аргумент /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=\"$(build.stagingDirectory)\"

Так что все это в значительной степени «из коробки». Следующие шаги (упаковка приложения + его развертывание) - нет. Я подозреваю, что в будущем у нас появятся хорошие задачи сборки VSO, которые упростят эту задачу. Пришлось возиться с командной строкой. Однако у меня оказалось довольно легко. Если вы настроили публикацию из Visual Studio - вы можете увидеть команды, которые она запускает, в окне вывода. Вы хотите воссоздать эти команды за 2 командных шага.

  1. Добавьте шаг командной строки для команды C:\Users\Administrator\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnu.cmd. Да, теперь он связан со средой выполнения DNX, так что это не оптимально. Но нам нужна утилита DNX для упаковки нашего приложения - отсюда и аргументы команды: publish --out $(build.stagingDirectory) --configuration Release --wwwroot-out "wwwroot" --runtime dnx-clr-win-x86.1.0.0-beta6 (опять же - просто скопировал его из окна вывода VS)

Это красиво упакует приложение в папку $(build.stagingDirectory). Далее - поднимите его в облако.

  1. Добавьте последний шаг командной строки с помощью команды: C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe и аргумента -source:IisApp='$(build.stagingDirectory)\wwwroot' -dest:IisApp='--something--',ComputerName='https://--something--.scm.azurewebsites.net/msdeploy.axd',UserName='$--something--',Password='--notsaying--',IncludeAcls='False',AuthType='Basic' -verb:sync -enableLink:contentLibExtension -retryAttempts:2

ПРИМЕЧАНИЕ: это предполагает, что вы настроили публикацию на веб-сайте. Перейдите на портал Azure - на свой веб-сайт Azure - и настройте публикацию. Загрузите XML-файл профиля публикации, и вы найдете эти параметры внутри. Также - все параметры записываются в окне вывода Visual Studio (кроме пароля).

У меня сейчас работает: Непрерывное развертывание веб-приложения vNext / ASP.NET 5 с использованием нового агента сборки Visual Studio Online (VSO).

Обзор сборки

person Jochen van Wylick    schedule 06.08.2015