Непрерывное развертывание одностраничных приложений на основе 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, которые кажутся многообещающими.

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


person Nikola Schou    schedule 03.01.2016    source источник


Ответы (2)


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

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

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

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

person Michael B    schedule 03.01.2016
comment
Спасибо за ответ. Конвейер, который я пытаюсь построить, очень прост и создан для прототипирования. По сути, речь идет об одной ветке, одной среде и таком процессе, как фиксация -> сборка + тестирование -> развертывание. Я отмечаю, что вы приводите в обсуждение веб-хуки Travis и Github, поскольку это может быть частью моего решения, поэтому +1 за это. - person Nikola Schou; 06.01.2016

Если вы хотите непрерывно развертывать одностраничное приложение 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 of Kudu вашего веб-приложения Azure по адресу https://<your azure webapp name>.scm.azurewebsites.net/DebugConsole и найти эти веб-файлы вашего статического веб-сайта html5 по пути site/wwwroot. На картинке ниже мой снимок каталога wwwroot каталога HTML5 Empty Web Apps.

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

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

person Peter Pan    schedule 04.01.2016
comment
Большое спасибо, что нашли время, чтобы дать этот ответ. Мне нужен процесс сборки для подготовки статической версии веб-приложения. Итак, ваше первое наблюдение (что мне не нужен процесс сборки) неверно. Тем не менее, остальная часть вашего комментария очень ценна, поскольку она подсказала мне, как я могу изменить процесс сборки, поэтому +1 за это. - person Nikola Schou; 06.01.2016
comment
@NikolaSchou Кажется, вы можете попробовать использовать Visual Studio Team Services, см. visualstudio.com/get-started/overview-of-get-started-tasks-vs. А о сборке и развертывании приложения NodeJS в Azure WebApp см. этот документ msdn.microsoft.com/Library/vs/alm/Build/azure/nodejs. - person Peter Pan; 07.01.2016