Поделиться через


Сборка и тестирование проектов Go

Azure DevOps Services

Используйте Azure Pipelines для автоматического создания, тестирования и развертывания проектов Go. В этой статье показано, как создать конвейер, который создает и тестирует код Go при каждом отправке изменений в репозиторий.

Предпосылки

  • Организация и проект Azure DevOps. Создайте его бесплатно.
  • Проект Go в репозитории GitHub или Azure Repos. Если у вас нет проекта, можно использовать пример репозитория, указанный в этой статье.

Создание первого конвейера

Вы впервые используете Azure Pipelines? Прежде чем переходить к другим разделам, попробуйте этот раздел.

Сделайте форк следующего репозитория на GitHub:

https://github.com/MicrosoftDocs/pipelines-go

Вход в Azure Pipelines

Войдите в Azure Pipelines. После входа в систему, ваш браузер откроет https://dev.azure.com/my-organization-name и отобразит панель мониторинга Azure DevOps.

  1. В браузере перейдите к dev.azure.com и войдите в систему.
  2. Выберите свою организацию.
  3. Создайте проект, выбрав новый проект или создав проект , если вы создаете первый проект в организации.
  4. Заполните поле Имя проекта.
  5. Выберите видимость для вашего проекта.
  6. Выберите Создать.

Создание конвейера

  1. В проекте Azure DevOps выберите Pipelines в меню навигации слева.

  2. Выберите новый конвейер или создать конвейер , если этот конвейер является первым в проекте.

  3. На экране " Где находится код " выберите GitHub.

  4. Возможно, вас перенаправят на GitHub для входа. В этом случае введите учетные данные GitHub.

  5. На экране "Выбор репозитория" выберите репозиторий , в который находится приложение .NET.

  6. Вы можете перенаправиться на GitHub, чтобы установить приложение Azure Pipelines. В этом случае выберите " Утвердить" и "Установить".

Когда появится вкладка Настройка, выберите Go. Появится новый конвейер с azure-pipelines.yml YAML-файлом, готовым к настройке. Дополнительные сведения о более распространенных способах настройки конвейера см. в следующих разделах.

Среда разработки и сборки

Azure Pipelines можно использовать для создания проектов Go без настройки собственной инфраструктуры. Для выполнения сборок можно использовать агенты Linux, macOS или Windows.

Обновите следующий фрагмент кода в файле azure-pipelines.yml, чтобы выбрать соответствующее изображение.

pool:
  vmImage: 'ubuntu-latest'

Современные версии Go предустановлены на агентах, размещенных на серверах Microsoft. Для точных версий предварительно установленного Go см. сведения о размещенных в Майкрософт агентах в Azure Pipelines.

Настройка Go

Это важно

Поддержка версий Go: Проект Go больше не поддерживает версии Go до версии 1.11, и эти версии не получают обновления системы безопасности. Агенты, размещенные корпорацией Майкрософт, включают только поддерживаемые в настоящее время версии Go. Если проект использует Go 1.10 или более ранней версии, обновите до Go 1.21 или более поздней версии, чтобы воспользоваться встроенной поддержкой модулей, исправлениями безопасности и улучшениями производительности. См. историю выпусков Go для получения информации о поддержке версий.

Начиная с Go 1.11, больше не нужно определять $GOPATH переменную среды, настраивать макет рабочей области или использовать dep модуль. Теперь управление зависимостями встроено с помощью модулей Go.

Этот YAML реализует команду go get для скачивания пакетов Go и их зависимостей. Затем используется go build для создания содержимого, которое публикуется задачей PublishBuildArtifacts@1.

trigger: 
 - main

pool:
   vmImage: 'ubuntu-latest'

steps: 
- task: GoTool@0
  inputs:
    version: '1.22'  # Use a currently supported Go version
- task: Go@0
  inputs:
    command: 'get'
    arguments: '-d'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: Go@0
  inputs:
    command: 'build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: CopyFiles@2
  inputs:
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
     artifactName: drop

Строить

Используйте go build для создания проекта Go. Добавьте следующий фрагмент кода в azure-pipelines.yml файл:

- task: Go@0
  inputs:
    command: 'build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

Тест

Используйте go test для тестирования вашего модуля Go и его подкаталогов (./...). Добавьте следующий фрагмент кода в azure-pipelines.yml файл:

- task: Go@0
  inputs:
    command: 'test'
    arguments: '-v'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

Когда вы будете готовы, закоммитьте новый файл azure-pipelines.yml в репозиторий и обновите коммит-сообщение. Выберите Сохранить и выполнить.

Кнопка

Если вы хотите посмотреть, как работает ваш производственный процесс, выберите сборку в разделе Задания на панели мониторинга Azure Pipelines. Конвейерная сборка в процессе при выборе параметра

Поскольку ваш код подходит для шаблона Go, Azure Pipelines автоматически создала конвейер.

Теперь у вас есть рабочий конвейер YAML (azure-pipelines.yml) в репозитории, который готов к настройке!

Когда вы будете готовы внести изменения в конвейер, выберите его на странице конвейеров и изменитеazure-pipelines.yml файл.

Подсказка

Чтобы внести изменения в файл YAML, как описано в этой статье, выберите конвейер на странице Конвейеры, а затем выберите Изменить, чтобы открыть редактор для файла YAML azure-pipelines.yml. снимок экрана, демонстрирующий процесс изменения Azure Pipeline в панели с выбранными дополнительными параметрами и выделенной функцией

Создание образа и отправка в реестр контейнеров Azure

Для приложения Go можно также создать образ и отправить его в реестр контейнеров.