Упражнение. Создание конвейера
На этом этапе Мара определила конфигурацию сборки для веб-сайта Space Game. Теперь ваша очередь. Вы создадите конвейер и свой первый артефакт сборки.
Как вы знаете, Мара использовала файл YAML для определения сборки. При создании конвейера процесс запрашивает файл YAML. В проекте еще нет этого файла.
Если вы не предоставите исходный файл YAML для проекта, Azure Pipelines может создать его в соответствии с типом приложения. В этом уроке вы скомпилируете приложение ASP.NET Core, однако Azure Pipelines также предоставляет начальные конфигурации сборки для других типов проектов, включая Java, Go и т. д.
Создание конвейера
В Azure DevOps перейдите к своему проекту.
Выберите Pipelines (Конвейеры) на странице проекта или на панели слева.
Выберите Создать конвейер (или Создать конвейер , если это не первый конвейер в проекте).
На вкладке Connect (Подключение) выберите GitHub.
При появлении запроса введите свои учетные данные на GitHub.
На вкладке Select (Выбор) выберите репозиторий mslearn-tailspin-spacegame-web.
Возможно, вы перейдете на сайт GitHub, чтобы установить приложение Azure Pipelines. В этом случае прокрутите экран вниз и выберите Approve & Install (Утвердить и установить).
На вкладке Configure (Настройка) выберите ASP.NET Core.
Примечание
Если этот параметр не отображается, выберите Show more (Показать больше). Не выбирайте параметр ASP.NET Core (.NET Framework).
На вкладке Review (Проверка) обратите внимание на начальную конфигурацию сборки.
Это базовая конфигурация, которую Azure DevOps предоставляет для приложений ASP.NET Core.
На вкладке Review (Проверка) выберите Save and run (Сохранить и выполнить). Затем выберите команду Save and run (Сохранить и выполнить) еще раз, чтобы зафиксировать изменения в GitHub и запустить сборку.
Наблюдение за выполнением конвейера
В разделе Jobs (Задания) выберите Job (Задание). После этого отслеживайте все этапы процесса сборки. Чтобы просмотреть выходные данные задания в виде текстового файла после завершения сборки, выберите View raw log (Просмотреть журнал необработанных данных).
Примечание
Если состояние конвейера остается в очереди и через несколько секунд не переходит на Выполняется , проверьте параллельные задания. В этом модуле используется размещенный агент Майкрософт и требуется параллельное задание. Проверьте свои параллельные задания и запросите бесплатный грант.
Здесь вы увидите шаги, созданные с использованием определения сборки. Здесь подготавливается виртуальная машина, получается последняя версия исходного кода из GitHub, а затем выполняется сборка приложения.
Эта конфигурация является удобной отправной точкой для последующего добавления задач сборки. Тем не менее ее необходимо обновить для соответствия нуждам команды Tailspin, например для минификации файлов JavaScript и CSS.
Совет
Проверьте электронную почту. Возможно, вы уже получили уведомление о сборке с результатами выполнения. Эти уведомления можно использовать, чтобы сообщать членам команды об успешном или неудачном завершении сборки.
Добавление задач сборки
Теперь, когда у вас есть рабочий процесс сборки, можно начать добавление задач сборки.
Помните, что вы работаете в ветви main
. Чтобы сохранить работу, создайте ветвь с именем build-pipeline
. Использование ветвей позволяет экспериментировать и создавать полностью рабочие сборки, не влияя на работу других участников группы.
Вы можете добавлять задачи сборки в azure-pipelines.yml непосредственно в Azure Pipelines. Azure Pipelines зафиксирует изменения непосредственно в ветвь. Здесь вы измените файл azure-pipelines.yml локально и отправите (загрузите) свои изменения в GitHub. Таким образом вы сможете попрактиковаться в работе с Git. При отправке изменений конвейер автоматически создаст приложение.
На практике вы можете добавлять задачи сборки по одной, отправлять изменения и смотреть, как они выполняются. Здесь вы добавите все ранее определенные задачи сборки одновременно.
Примечание
Вы выполните несколько команд Git. Не беспокойтесь, если вы не знакомы с Git. Мы покажем, что делать. Кроме того, мы более подробно рассмотрим Git в будущих модулях.
В Visual Studio Code откройте встроенный терминал. Откройте ветвь
main
своего репозитория, а затем выполните следующие шаги.Чтобы получить последние изменения из GitHub и обновить ветвь
main
, выполните следующую командуgit pull
.git pull origin main
Как будет видно из выходных данных, Git приносит файл с именем azure-pipelines.yml. Это начальная конфигурация конвейера, которая автоматически создается Azure Pipelines. При настройке конвейера Azure Pipelines добавляет этот файл в ваш репозиторий GitHub.
Чтобы создать ветвь с именем
build-pipeline
, выполните следующую командуgit checkout
:git checkout -B build-pipeline
В Visual Studio Code измените azure-pipelines.yml следующим образом:
trigger: - '*' pool: vmImage: 'ubuntu-22.04' variables: buildConfiguration: 'Release' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK 6.x' inputs: packageType: sdk version: '6.x' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: Tailspin.SpaceGame.Web/wwwroot - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Build the project - Release' inputs: command: 'build' arguments: '--no-restore --configuration Release' projects: '**/*.csproj'
В разделе
steps
вы увидите задачи сборки, соответствующие каждой из команд скрипта, которые мы определили ранее.Azure Pipelines предоставляет встроенные задачи сборки, которые сопоставляются с различными стандартными операциями сборки. Например, задача
DotNetCoreCLI@2
соответствует программе командной строкиdotnet
. Конвейер используетDotNetCoreCLI@2
два раза: один раз для восстановления или установки зависимостей проекта и один раз для сборки проекта.Помните, что не все операции сборки сопоставляются со встроенными задачами. Например, нет встроенной задачи, которая запускает служебную программу node-Sass или записывает сведения о сборке в текстовый файл. Для выполнения общих системных команд используйте задачу
CmdLine@2
илиscript
. Конвейер использует задачуscript
, так как это стандартный ярлык дляCmdLine@2
.На этапе сборки, который записывает сведения о сборке в файл, обратите внимание на следующие элементы.
$(Build.DefinitionName)
$(Build.BuildId)
$(Build.BuildNumber)
Это встроенные переменные, которые система предоставляет для использования в конвейерах:
$(Build.DefinitionName)
— это имя конвейера сборки. Например, SpaceGame-Web-CI.$(Build.BuildId)
— это числовой идентификатор завершенной сборки, например 115.$(Build.BuildNumber)
— имя завершенной сборки. Вы можете настроить формат, но по умолчанию номер сборки содержит текущую дату, после которой идет номер сборки за этот день. Пример номера сборки: 20190329.1.
Можно также определить собственные переменные, и вы сделаете это чуть позже.
Возможно, вы заметили задачу
UseDotNet@2
на первом этапе сборки. Мара вспомнила, что ее скрипт сборки не устанавливал необходимые для сборки инструменты. Несмотря на то что агент сборки поставляется с несколькими версиями пакета SDK для .NET, эта задача позволяет ей легко выбрать нужную версию для использования в агенте сборки.Выполните следующие команды Git в окне встроенного терминала, чтобы добавить файл azure-pipelines.yml в индекс, зафиксировать изменение и отправить изменение в GitHub. Эти этапы аналогичны тем, что вы выполняли ранее.
Совет
Не забудьте сохранить файл azure-pipelines.yml перед выполнением этих команд Git.
git add azure-pipelines.yml git commit -m "Add build tasks" git push origin build-pipeline
На этот раз вы отправляете ветвь
build-pipeline
, а неmain
, на GitHub.Отправка ветви на GitHub активирует процесс сборки в Azure Pipelines.
В Azure Pipelines перейдите к сборке. Для этого выберите Pipelines (Конвейеры) в боковой части страницы, а затем выберите свой конвейер. Теперь выберите Запустить конвейер. Вы увидите сообщение о фиксации и выполнение сборки с использованием кода из ветви
build-pipeline
.Совет
Если вы не видите сборку, подождите некоторое время или обновите страницу.
Выберите сборку и отслеживайте задачи сборки по ходу выполнения.
Например, вот что происходит, когда выполняется задача
gulp@1
для выполнения задач gulp, которые уменьшают размер ресурсов JavaScript и CSS.При сбое любого шага в выходных данных отображается ошибка, позволяя вам продиагностировать и устранить сбой.
До этого вы запустили более раннюю конфигурацию сборки. На этот раз после завершения сборки вы увидите более полный набор задач, необходимых для построения приложения.
После завершения сборки выберите любой из этапов, чтобы просмотреть общий ход выполнения сборки. Отсюда можно перейти к журналам сборки или соответствующему изменению на GitHub.
Нужна помощь? Обратитесь к руководству по устранению неполадок или предоставьте отзыв, сообщив о конкретной проблеме.