Упражнение. Создание конвейера для пакета
Здесь вы получите новый код команды для проекта Tailspin.SpaceGame.Web.Models , который теперь отделен от проекта Tailspin.SpaceGame.Web . Вы создадите проект Azure Pipelines для проекта Models и просмотрите артефакты в 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-адресом, чтобы скопировать 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 .
В меню слева выберите "Конвейеры".
Выберите Новый конвейер.
На вкладке Подключиться выберите GitHub.
На вкладке "Выбор " выберите mslearn-tailspin-spacegame-web-models.
При появлении запроса введите учетные данные GitHub. На появившемся экране прокрутите страницу вниз и выберите " Утвердить" и "Установить".
На вкладке Проверка появится файл нового конвейера azure-pipelines.yml.
Выберите Выполнить.
Наблюдайте за выполнением конвейера.
Перейдите на вкладку "Артефакты ".
В раскрывающемся списке вверху выберите Tailspin.SpaceGame.Web.Models.
Вы увидите полученный пакет Tailspin.SpaceGame.Web.Models в Azure Artifacts.
Выберите пакет, чтобы перейти на страницу сведений. Затем скопируйте номер версии в расположение, где его можно легко получить позже.
Этот номер версии будет использоваться в следующем уроке.