Рубрики
Uncategorized

Azure DevOps Tipelines с GitHub, введение

Как начать с Azure Pipeline и GitHub, создайте конвейер CI из GitHub Repos. Tagged с DevOps, Azure, GitHub, CICD.

Azure DevOps — это набор инструментов для эффективного создания и доставки продукта. Это онлайн -приложение с доской, доской Azure, для Scrum и Kaban, репозитория, Azure Repos, в которых используются GIT и TFS, вики, управление артефактом, артефакт Azure, исследовательский инструмент тестирования, план испытаний Azure и CI/CD CD, Azure Трубопровод, Azure DevOps Pipelines. Если вам нужна дополнительная информация о Azure DevOps, вы можете прочитать это введение

Как мы можем запустить трубопровод для тестирования и создания кода из репозитория GitHub с трубопроводом Azure DevOps? Есть несколько шагов:

  • Вам нужна учетная запись GitHub
  • Вам также нужна учетная запись Azure DevOps (также вы можете войти в Azure DevOps с помощью учетной записи GitHub).

Давайте начнем.

Для меня лучше создать вашу учетную запись и ваш первый проект Azure DevOps в первый раз. У вас будет больше контроля. Просто перейти к https://dev.azure.com

Вы можете создать учетную запись или просто использовать свою учетную запись GitHub.

В GitHub нам нужно добавить расширение Azure DevOps; Просто нажмите на «Marketplace» и найдите Azure Pipeline.

Нажмите на Настройку плана

Выберите бесплатный план и нажмите «Установить его бесплатно». Обратите внимание, что для публичного проекта вы получаете 10 параллельных и неограниченных минут в месяц.

Нажмите, чтобы установить, чтобы закончить

Вы также можете сделать то же самое с приложением Azure Board.

Проект Azure DevOps не является автоматически общедоступным. Если вам нужны 10 заданий и/или неограниченные минуты сборки, вам необходимо убедиться, что видимость вашего проекта установлена на публике.

Теперь мы можем создать конвейер сборки. В Azure DevOps есть два вида конвейера, трубопровод GUI и конвейера на основе YAML.

Трубопровод — это коллекция задач, работающих на специализированном компьютере, созданном только для этого, и который будет уничтожен в конце. В Azure DevOps этот компьютер является агентом. Этот агент поставлялся с инструментами для выполнения задач сборки, компилятора (Go, .net, Visual Studio, …), Runtime и SDK (.net, …), инструментов (GIT, шоколад, Nuget, NPM,…), Двигатели сценариев (PowerShell, Python,…), водители.

Есть несколько онлайн -агентов:

  • Windows 2019 с VS 2019
  • Windows 2016 с VS 2017
  • Windows 2012 R2 с VS 2015
  • Windows Server 1803 Изображение контейнера
  • Mac OS 10.14
  • Mac OS 10.13
  • Ubuntu 16.04 LTS

Этот компьютер работает на Azure на V2 V2 V2. Они изолированы и удалены в конце трубопровода. Вы можете проверить Эта страница иметь больше информации об этих агентах.

Для конвейеров GUI

В Azure DevOps перейдите в трубопровод и нажмите на новый трубопровод

Нажмите «Используйте классический редактор»

В Select Source выберите GitHub, если вы не можете увидеть подключение к своим репозиторам GitHub, вы все равно можете создать его здесь.

Выберите свой репозиторий и ветвь

Затем выберите пустую работу

Теперь у нас есть конвейер интеграции. Если вы посмотрите справа, вы можете изменить имя трубопровода и агента по умолчанию. Вы можете выбрать:

Windows 2012 R2 Размещен
Windows 2016 Размещен против 2017
Windows 2019 Размещенные Windows 2019 с VS2019
Контейнер Windows Server 1803 Раздельный контейнер для Windows
Mac OS 10.14 Размещен MacOS
Mac OS 10.13 Размещен MacOS High Sierra
Ubuntu 16.04 LTS Размещен Ubuntu 1604

Выберите агента, который соответствует вашему проекту, для демонстрации я буду использовать «Hosted Windows 2019 с VS2019»

Нажмите «Сохранить и очередь» и выберите «Сохранить», чтобы сохранить модификацию (если вы нажмете «Сохранить и очередь», это запустит трубопровод и появится в истории сборки).

Справа вы можете увидеть первую задачу трубопровода «Получить источники». Исходный код из филиала будет копироваться на агенте каждый раз, когда запускается трубопровод.

Вы можете контролировать поведение, нажав на него. Здесь вы можете пометить источники или вы можете заказать подмодуль.

Вам может потребоваться использовать какое -то значение во время сборки. Это может быть номер сборки, путь, имя модуля, или это также могут быть некоторые секретные значения, такие как пароли, ключи,…. Это цель вкладки «переменные». Вы можете добавить здесь несколько переменных, но лучший способ создать группу переменной и связать ее здесь.

Чтобы добавить переменную группу, вам нужно перейти в библиотеку в меню трубопровода слева. Нажмите «+ Группа переменных», чтобы добавить новую группу. Дайте имя в новую группу переменных и нажмите «+ Добавить», чтобы добавить новую переменную и ее значение. Обратите внимание на значок замка справа. Если вы нажмете на него, значение переменной замаскировано. Значение также будет замаскировано в консоли или в журнале. Это не функция безопасности, так как сценарий может легко получить доступ к значению и каждому администратору.

Если вам нужно управлять секретами с помощью трубопровода, вы можете включить ссылку на подписку на Azure и выбрать хранилище ключа. Azure DevOps будет выступать в качестве прокси для ключевого хранилища. Вы можете оценить эти переменные у хозяина агента через переменные среды во время сборки.

Чтобы создать процесс сборки, нам нужно добавить задачи к работе агента. Нажмите на + рядом с именем задания агента и выберите одну или несколько задач. Это может быть задача сценария, тест, задача компиляции … вы также можете просмотреть рынок, чтобы найти задачу, которая соответствует вашему проекту.

Задачи, как правило, включают компиляцию кода, модульное и приемлемое тестирование, упаковку и другие связанные задачи. По умолчанию, если задача не выполняется, она останавливает процесс и сообщает об ошибке, но вы можете управлять этим поведением, выбрав задачу и перейти к «опции управления» на левой панели. Вы можете использовать опцию «Продолжить ошибку», чтобы предотвратить задачу, чтобы остановить процесс, если он сбой. Это может быть полезно в ситуации, когда выполнения тестов и их публикация находятся в двух задачах.

По умолчанию трубопровод не запускается каким -либо обязательством GitHub Repos. Нам нужно настроить, как будет реагировать конвейер на коммит или запрос на вытяжение. Вкладка «Триггеры» — это то, где мы можем включить или отключить непрерывную интеграцию. У вас есть два основных варианта.

  • Непрерывная интеграция, где каждый коммит в филиале запускает процесс сборки
  • Проверка запроса вытяните, где каждый PR запускает процесс сборки. Вам нужно будет выбрать хотя бы одну ветвь.

Имейте в виду, GitHub разрешить запрос на вытягивание из раздробленных репо. Секреты, связанные с сборкой, не будут доступны для раздвоенного пиара и могут вызвать ошибку сборки. Вы можете включить эти секреты с помощью «сделать секреты, доступные для строительства вилок», но это может вызвать некоторую проблему безопасности.

Для трубопроводов на основе YAML

Процесс создания конвейера на основе YAML не совсем отличается.

Вместо того, чтобы нажать «Использовать классический редактор», вам просто нужно нажать на GitHub. Выберите свои репозиции GitHub, и вам придется выбрать опцию, использовать файл стартера YAML, файл YAML, созданный в ваших репо с помощью Azure DevOps, или выберите существующий.

Для первого вы заметите новый коммит с именем «Настройка CI с Azure Tipвей» и новый файл azure-pipelines.yml в ваших репозициях Githib. Большая часть конфигурации трубопровода находится в этом файле.

Файл YAML — это иерархия

x Pipeline x Stages x задания x Шаги x Задачи

Вы можете иметь полную ссылку Здесь Анкет

Но вы можете начать с более минималистской версии. Дайте начать с триггера, как и в версии GUI, вы можете контролировать, как запускается трубопровод.

trigger: 
- master 

Это запустит конвейер сборки каждый для каждого нового коммита в главной ветви так же, как мы можем включить трубопровод для запроса на вытягивание для одной и той же ветви.

pr: 
- master 

Мы также можем импортировать группу переменных из библиотеки

variables: 
-  group: VarGroupName 

Также можно определить жестко -кодированные переменные

variables: 
   modulename: MyModule 
   DefaultVersion: 0.0.1 

После этого мы можем настроить версию хоста агента

Pool: 
  vmImage: windows-2019

Что касается версии GUI, существует ограниченный список агентов

Windows 2012 R2 VS2015-WIN2012R2
Windows 2016 VS2017-WIN2016
Windows 2019 Windows-2019
Контейнер Windows Server 1803 Win1803
Mac OS 10.14 macos-10.14
Mac OS 10.13 macOS-10.13
Ubuntu 16.04 LTS Ubuntu-16.04

И, наконец, мы можем добавить задачи, которые нам нужны под шагом

steps: 

- task: PowerShell@2 

  displayName: BuildScript 

  inputs: 

    targetType: filePath 

    filePath: '$(System.DefaultWorkingDirectory)\azdo-build.ps1' 

Обратите внимание на использование системной переменной здесь

Как и в версии GUI, вы можете добавить одну или несколько задач, и вы можете контролировать, как ведут себя задача в случае ошибки.

continueOnError: true 

Теперь, когда вы видите, как мы можем настроить конвейер, используя один файл, вы можете увидеть, что трубопровод на основе YAML менее прост, но гораздо более мощный, чем версия GUI.

Последняя вещь о трубопроводах с Azure DevOps до заключения. Как рекламировать все состояние сборки?

Мы можем сделать это со значком. Значки — это динамические изображения, размещенные на Azure DevOps. Изменение изображения на основе статуса сборки, еще не работающего, успеха, терпит неудачу. Вы можете поместить файл readme.md проекта GitHub. Чтобы получить значок для трубопровода, просто нажмите на 3 балла слева.

Нажмите «Значок статуса»

Вы просто скопируете и вставьте маркунату в свой файл readme.md.

Это всего лишь введение о том, как использовать трубопроводы Azure DevOps с GitHub. Как вы видите, Yaml — самый мощный инструмент для создания вашего CI. Вы также можете создать конвейер CD с Azure DevOps для доставки продукта.

Если вы можете говорить по -французски, вы можете просмотреть это видео Я сделал для французской группы пользователей PowerShell в Париже о сборке и трубопроводах (но на французском языке)

Оригинал: «https://dev.to/omiossec/azure-devops-pipelines-with-github-introduction-43mi»