Построение потока выпуска в VSTS для архитектуры микросервиса

#powershell #continuous-integration #azure-devops #continuous-delivery

#powershell #непрерывная интеграция #azure-devops #непрерывная доставка

Вопрос:

Я пытаюсь настроить поток выпуска для моего проекта архитектуры микросервиса в Visual Studio Team Services. Чтобы выполнить эту работу, мне нужно извлечь артефакты для каждого отдельного проекта / службы в моем решении. я могу сделать это вручную, настроив отдельные шаги сборки для каждой службы с жестко заданными значениями. Но что, если я хотел бы сделать i более универсальным, чем это?

В сценарии моей мечты я мог бы создать группу задач с именем службы в качестве входных данных, а затем просто отправить список служб / проектов для развертывания. Я выяснил, как создать группу задач, но не понял, как использовать список в качестве входных данных для сборки, а не как перебирать список объектов, вызывающих мою задачу. Есть предложения? Какие-либо сторонние инструменты или я должен тратить свое время на просмотр сценариев powershell вместо этого?

РЕДАКТИРОВАТЬ: я попытаюсь уточнить, что я хочу, с помощью некоторого псевдокода:

 BuildAndReleaseCode(solution, listOfServicesToBuild)
{
    NuGetRestore(solution);
    outputfolder = BuildSolution(solution);
    //Add testing
    for (service in listOfServicesToBuild)
    {
        CopyFilesAndPublishArtifact(sourceFolder, targetfolder)
        DeployArtifact(targetFolder, targetMachine)
    }
}
 

Комментарии:

1. Какие жестко заданные значения вы указали?

2. Вы решаете эту проблему?

3. @starain Нет, к сожалению, нет. Но я добавил некоторый псевдокод, чтобы уточнить, что именно я ищу.

4. Вы имеете в виду, что вы создаете и развертываете свои проекты напрямую через свой код? Как насчет сборки и развертывания ваших проектов с помощью этапов сборки в сборке vNext? Например, сборка Visual Studio, тестирование Visual Studio, копирование файлов (артефактов) и т. Д…

5. @starain Нет, я просто решил использовать псевдокод, чтобы попытаться объяснить, что я хотел сделать, используя определения сборки VSTS.

Ответ №1:

Общий процесс:

  1. Создайте определения сборки для сборки проектов и публикации артефакта (шаг публикации артефакта) (определение сборки с несколькими этапами сборки Visual Studio или несколькими определениями сборки для каждого проекта) Вам необходимо указать проект / решение для сборки Visual Studio.
  2. Построение очередей
  3. Создайте определение выпуска
  4. Свяжите один или несколько артефактов (артефакты сборки) с этим выпуском (вкладка Артефакты)
  5. Добавьте необходимые задачи и среды для развертывания проектов.
  6. Создайте выпуск и начните выпуск для развертывания

Выпуск может быть запущен, когда доступна новая версия артефакта (откройте определение выпуска => Вкладка Триггеры).

Кроме того, сборка может запускаться при регистрации или построении очереди в определенное время. (Откройте определение сборки => Вкладка Триггеры)

Обновить:

На этапе сборки Visual Studio можно использовать подстановочные знаки, например, ***.sln для всех файлов sln во всех вложенных папках, поэтому вам не нужно указывать project с жестко заданным значением.

Если вы хотите создавать конкретные проекты в решении, вы можете указать параметр /t.

Если эти проекты находятся в разных решениях и расположении, вы можете создать файл проекта MSBuild, который использует задачу MSBuild для построения проектов.

С другой стороны, вы можете настроить задачу сборки для достижения этой цели вы можете обратиться к коду VSBuild и этим статьям (1 или 2) к пользовательской задаче сборки, после чего, используя эту пользовательскую задачу сборки с аргументом списка проектов, создавать нужные проекты.

Комментарии:

1. Ах, статьи, на которые вы ссылались, вероятно, то, что я хочу. Спасибо!