Непрерывное развертывание одностраничных приложений на базе NodeJS, работающих в Windows Azure?

Я пытаюсь найти хорошую настройку для непрерывного развертывания одностраничных приложений в Windows Azure. Вот ограничения:

  • Исходный код размещен на GitHub.
  • Приложение должно обслуживаться в Windows Azure в виде веб-приложения или какой-либо другой службы Azure, подходящей для одностраничных приложений, то есть статических html5-сайтов без необходимости обработки на стороне сервера.
  • Я пробую различные архитектуры одностраничных приложений, используя технологию сборки, основанную на NodeJS, такую ​​как grunt или gulp, для создания конечного сайта.
  • Я использую WebStorm в качестве среды для веб-разработки, поэтому любая зависимость от Visual Studio и MSBuild кажется неудобной в этом контексте.
  • Я хочу настроить непрерывное развертывание в облаке, т.е. каждый новый коммит должен приводить к автоматической сборке и развертыванию. Все должно быть автоматизировано в облаке.

Я опробовал функцию непрерывного развертывания веб-приложений Windows Azure, но не могу заставить процесс сборки делать то, что я хочу. Возможно, можно настроить процесс сборки, я не уверен.

Я также изучил AppVeyor, но, похоже, он оптимизирован для проектов.NET, использующих MSBuild в качестве платформы для сборки.

Я начал изучать travis-ci и circleci, которые кажутся многообещающими.

Я хочу найти самый простой и естественный подход с использованием новейших технологий и облачных сервисов. Что вы можете порекомендовать?

2 ответа

Я думаю, что вам не хватает концепции, которая заключается в том, что вам необходим конвейер, который доставляет ваш код от одного этапа к другому.

Все это можно сделать на основе Github и Azure. Это может быть примером конвейера.

  • Когда вы впервые фиксируете изменение, оно будет передано в ветку 'test'
  • Webhook в Github вызывает ваш сервер Travis, который выполнит необходимые вам этапы сборки и проведет любое предварительное тестирование. т.е. убедитесь, что он компилируется и т. д.
  • Затем код объединяется с промежуточной веткой.
  • Azure забирает новый код и развертывает его в своем промежуточном веб-приложении.
  • Другой веб-крючок Github запускает тестирование функциональности и производительности.
  • На этом этапе у вас может быть ручной шаг для авторизации развертывания в производство.
  • Затем либо автоматически, либо вручную вы объединяете промежуточную ветку с производственной веткой, и Azure автоматически развертывается.

Это, очевидно, упрощено, но это должно дать вам возможность задуматься о процессе, который вам нужно реализовать.

Если вы хотите непрерывного развертывания одностраничного приложения HTML5 без какой-либо обработки на стороне сервера, я думаю, что нет необходимости использовать технологию сборки NodeJS для развертывания статического html5-сайта.

Вы можете попытаться создать HTML5 Empty Web App а также set up deployment from source control Чтобы сделать это на старом портале Azure, просмотрите эти рисунки ниже и обратитесь к документу https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control/.

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

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

Опция set up deployment from source control находится на правой боковой панели DASHBOARD вкладка вашего веб-приложения на старом портале Azure.

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

Тогда вы можете получить доступ к CMD инструмента Kudu в вашем веб-приложении Azure по адресу https://<your azure webapp name>.scm.azurewebsites.net/DebugConsole, и вы можете найти эти веб-файлы вашего статического сайта html5 по пути site/wwwroot, Картинка ниже - мой снимок wwwroot каталог HTML5 Empty Web Apps,

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

Любая проблема, пожалуйста, не стесняйтесь, дайте мне знать.

Другие вопросы по тегам