Упражнение. Создание конвейера для пакета
Здесь вы получите новый код команды для проекта Tailspin.SpaceGame.Web.Models, который теперь отделен от проекта Tailspin.SpaceGame.Web. Вы создадите проект Azure Pipelines для проекта "Модели" и увидите артефакт в Azure Artifacts с номером версии 1.0.0 в вашем канале.
Какие изменения были внесены в проект?
Напомним, что веб-сайт Space Game является приложением ASP.NET Core. Он использует шаблон model-View-Controller (MVC) для разделения данных от способа отображения данных в пользовательском интерфейсе. Энди и Мара хотят переместить классы модели в отдельную библиотеку, чтобы несколько проектов могли использовать эти классы.
Для этого они создают проект C# с именем Tailspin.SpaceGame.Web.Models, который содержит только классы моделей. В то же время они удаляют классы моделей из существующего проекта, Tailspin.SpaceGame.Web. Они заменяют классы модели в существующем проекте ссылкой на проект Tailspin.SpaceGame.Web.Models.
Для создания этих проектов Энди и Мара используют два конвейера, по одному для каждого проекта. У вас уже есть первый проект и связанная с ним конфигурация Azure Pipelines. Здесь вы форкнете второй проект на GitHub и создадите конфигурацию Azure Pipelines для его сборки. Вы опубликуете полученный пакет в Azure Artifacts.
Подготовка к работе с Visual Studio Code
Ранее вы настроили Visual Studio Code для работы с проектом Tailspin.SpaceGame.Web. Здесь вы откроете второй экземпляр Visual Studio Code, чтобы вы могли работать с проектом Tailspin.SpaceGame.Web.Models.
Откройте второй экземпляр Visual Studio Code.
В Visual Studio Code откройте интегрированный терминал.
Перейдите в родительский каталог, где находится проект mslearn-tailspin-spacegame-web. Вот пример, который перемещается в домашний каталог:
cd ~
Получение исходного кода
Получите исходный код для проекта Tailspin.SpaceGame.Web.Models из GitHub и настройте Visual Studio Code, чтобы вы могли работать с файлами.
Создать форк
Первым шагом является создание копии репозитория mslearn-tailspin-spacegame-web-models, чтобы вы могли работать с исходными файлами и изменять их. Помните, что Мара поместила каталог Models в новый проект и удалила его из веб-проекта.
Чтобы создать форк проекта mslearn-tailspin-spacegame-web-models в вашей учетной записи GitHub:
- В веб-браузере перейдите к GitHubи войдите в систему.
- Перейдите к проекту mslearn-tailspin-spacegame-web-models.
- Выберите вилку.
- Чтобы форкнуть репозиторий в вашу учетную запись, следуйте инструкциям.
Клонируйте ваш форк локально
Чтобы клонировать проект mslearn-tailspin-spacegame-web-models на ваш компьютер:
На сайте GitHub перейдите в вилку проекта mslearn-tailspin-spacegame-web-models.
Выберите код . Затем на вкладке HTTPS нажмите кнопку рядом с показанным URL-адресом, чтобы скопировать его в буфер обмена.
В Visual Studio Code перейдите в окно терминала и выполните следующую команду
git clone
. Замените отображаемый URL-адрес на содержимое из буфера обмена.git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
Перейдите в каталог mslearn-tailspin-spacegame-web-models. Это корневой каталог репозитория.
cd mslearn-tailspin-spacegame-web-models
Открытие проекта и проверка конфигурации
В Visual Studio Code окно терминала указывает на корневой каталог проекта mslearn-tailspin-spacegame-web-models. Откройте проект через проводник, чтобы просмотреть его структуру и работать с файлами.
Самый простой способ открыть проект — открыть Visual Studio Code в текущем каталоге. Для этого выполните следующую команду из интегрированного терминала:
code -r .
В проводнике отображается каталог и дерево файлов.
Откройте интегрированный терминал. Терминал помещает вас в корень веб-проекта.
Откройте файл azure-pipelines.yml.
Вы увидите шаги, в которых создается пакет, задана версия и пакет добавляется в Azure Artifacts.
Эта
DotNetCoreCLI@2
задача создает проект:- task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj'
Эта задача
DotNetCoreCLI@2
создаёт пакет проекта с версией 1.0.0:- task: DotNetCoreCLI@2 displayName: 'Pack the project - $(buildConfiguration)' inputs: command: 'pack' projects: '**/*.csproj' arguments: '--no-build --configuration $(buildConfiguration)' versioningScheme: byPrereleaseNumber majorVersion: '1' minorVersion: '0' patchVersion: '0'
При разработке пакета обычно используется схема управления версиями
byPrereleaseNumber
. Это добавляет уникальный суффикс предварительной версии, например "-CI-20190621-042647" к концу номера версии. В этом примере полный номер версии будет "1.0.0-CI-20190621-042647".Эта задача
NuGetCommand@2
отправляет пакет в канал Tailspin.SpaceGame.Web.Models Azure Artifacts.- task: NuGetCommand@2 displayName: 'Publish NuGet package' inputs: command: push feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models' allowPackageConflicts: true condition: succeeded()
feedPublish
указывает имя веб-канала для публикации. Формат имени —<projectName>/<feedName>
, где:-
$(System.TeamProject)
— это предопределенная переменная, которая ссылается на имя проекта; например, "Space Game - web - Dependencies". -
Tailspin.SpaceGame.Web.Models
— это имя канала, указанное в предыдущем упражнении.
-
Настройка разрешений
Прежде чем настроить и запустить конвейер, необходимо предоставить службе сборки правильные разрешения.
- Перейдите к проекту в Azure DevOps.
- Выберите артефакты в меню слева.
- Выберите значок параметров в правом верхнем углу экрана, затем выберите вкладку разрешения.
- Нажмите кнопку Добавить пользователей или группы.
- В поле "Пользователи и группы" введите Space Game - web - Dependencies Build Service, выберите роль участника и выберите Сохранить.
Создание конвейера в Azure Pipelines
Вы узнали, как настроить Azure Pipelines в предыдущем модуле. Если вам нужно освежить в памяти, перейдите к Создание конвейера сборки с помощью Azure Pipelines.
Вот как настроить второй конвейер для сборки пакета и отправить этот пакет в Azure Artifacts.
В Azure DevOps перейдите к проекту Space Game - web - Dependencies.
В меню слева выберите Конвейеры.
Выберите Новый конвейер.
На вкладке Connect выберите GitHub.
На вкладке Выбор выберите mslearn-tailspin-spacegame-web-models.
При появлении запроса введите учетные данные GitHub. На появившемся экране прокрутите страницу вниз и выберите Утвердить и установить.
На вкладке "Проверка" появится файл azure-pipelines.yml нового конвейера.
Выберите Выполнить.
Посмотрите, как работает конвейер.
Перейдите на вкладку артефактов.
В раскрывающемся списке вверху выберите Tailspin.SpaceGame.Web.Models.
Вы увидите полученный пакет Tailspin.SpaceGame.Web.Modelsв Артефактах Azure.
Выберите пакет, чтобы перейти на страницу сведений. Затем скопируйте номер версии в расположение, где его можно легко получить позже.
Этот номер версии будет использоваться в следующем уроке.