Как настроить непрерывную интеграцию веб-задания Node.js в VSTS

Я знаком с тем, как настроить непрерывную интеграцию веб-приложений node.js с помощью VSTS.

Как мне настроить непрерывную интеграцию для веб-задания node.js. Я нашел примеры того, как это сделать с проектом .NET с помощью Visual Studio, однако не смог найти никакой документации о том, как это сделать с веб-заданием node.js.




Ответы (2)


сделал следующее: сборка + развертывание веб-задания nodejs через задачу Azure App Service Deploy (FTP был остановлен из-за проблем с безопасностью в нашем ИТ-ландшафте).

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

в моем проекте все (run.js + package.json + зависимости находятся на корневом уровне)

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

  1. Получить исходники
  2. встроенный скрипт powershell (очистить папку назначения, создать папку назначения, переместить корневую папку в структуру веб-задания)
Remove-Item -Path $(Build.BinariesDirectory)\app_data -Force -Confirm:$false -Recurse -ErrorAction:Ignore
New-Item $(Build.BinariesDirectory)\app_data\jobs\continuous\ -ItemType Directory -Force
Move-Item $(Build.SourcesDirectory)\[webjobname]\ $(Build.BinariesDirectory)\app_data\jobs\continuous\[webjobname] -Force
  1. npm install внутри $(Build.BinariesDirectory)\app_data\jobs\continuous\[webjobname] (рабочая папка)

  2. Задача архивации $(Build.BinariesDirectory)

  3. Артефакт публикации $(Build.ArtifactStagingDirectory) (путь публикации)

Определение выпуска: классическое развертывание службы приложений с использованием ZIP-файла артефакта, созданного вышеприведенной сборкой.

person camous    schedule 13.07.2018

Чтобы CI построить ваше приложение node.js, вы можете сначала управлять своим кодом с помощью репозитория на VSTS (или удаленного репо, размещенного на других сайтах, таких как github, bitbucket и т. д.), а затем создать определение определения сборки для вашего веб-задания node.js. Подробные шаги, как показано ниже:

1. Управление кодом с помощью репозитория VSTS (git или TFVC)

Вы можете управлять своим приложением node.js в текущем репозитории, который вы использовали, или вы можете создать новый репозиторий для управления своим приложением node.js. Создайте новый репозиторий git (в качестве примера я использую репозиторий git, аналогичный TFVC), вы можете указать создать репозиторий git для командного проекта.

Отправьте код node.js в репозиторий VSTS. Вы можете использовать VS (клонировать репозиторий -> скопировать свой код в локальное репо -> зафиксировать -> нажать) или команды git напрямую.

2. Создайте CI-сборку

Во вкладке Builds -> New -> используйте шаблон Node.JS With Gulp (PREVIEW) (или вы можете использовать пустой шаблон, а затем добавить задачи вручную) -> шаг Get sources -> укажите репо и ветку, в которой существует ваш код -> укажите настройки задач -> добавить другие задачи, если нужно -> вкладка «Триггеры» -> включить непрерывную интеграцию. введите здесь описание изображения

Дополнительные сведения о сборке CI приложения node.js см. по адресу определить сборку CI для приложения node.js.

3. Добавьте свое приложение в веб-задания Azure.

В определении сборки CI добавьте следующие задачи:

  • Задача копирования файлов: копирование приложения, которое вы хотите запустить в веб-заданиях Azure, из $(System.DefaultWorkingDirectory) в $(Build.ArtifactStagingDirectory).

  • Задача архивирования файлов: создайте ZIP-файл (например, $(Build.ArtifactStagingDirectory)/webjob.zip) из файлов в $(Build.ArtifactStagingDirectory).

  • Задача развертывания службы приложений Azure: разверните ZIP-файл ($(Build.ArtifactStagingDirectory)/webjob.zip) в Azure.

И более подробную информацию вы также можете найти в этой теме.

person Marina Liu    schedule 04.07.2017
comment
Как упоминалось в моем вопросе, я знаю, как опубликовать веб-приложение Node.js с помощью VSTS CI. Я хотел бы знать, как это сделать специально для веб-заданий Node.js. - person RedJandal; 05.07.2017
comment
Вы имеете в виду запуск приложения node.js в веб-заданиях Azure со сборкой CI? - person Marina Liu; 05.07.2017
comment
Я хочу развернуть веб-задание Azure с помощью VSTS CI. Итак, у меня есть код для веб-задания, и я могу развернуть его вручную, заархивировав код и развернув его через портал Azure в разделе веб-задания в своем веб-приложении. Я хотел бы автоматизировать этот шаг. - person RedJandal; 05.07.2017
comment
Хорошо, я добавил в свой ответ шаг по развертыванию вашего приложения на веб-заданиях Azure. - person Marina Liu; 05.07.2017
comment
@MarinaLiu-MSFT Нужна ли webjob.zip определенная структура для сопоставления с непрерывными заданиями? документация полностью ориентирована на C# (включая nuget). так как 2 года мы занимались ftp копированием, но какие-то новые правила безопасности остановили это :) - person camous; 12.07.2018
comment
@camous файловая структура может сохранить то, что вам нужно, просто убедитесь, что все файлы отсутствуют. - person Marina Liu; 13.07.2018
comment
@MarinaLiu-MSFT, так что, если я правильно понял, моя файловая структура моего zip-файла webjob должна быть /app_data/jobs/continuous/webjobname со всеми моими необходимыми файлами, включая node_modules ? - person camous; 13.07.2018