Используйте конвейер для автоматической сборки и тестирования проектов Go.
Создание первого конвейера
Новые возможности Azure Pipelines? В этом случае рекомендуется попробовать этот раздел, прежде чем перейти к другим разделам.
Создайте вилку для следующего репозитория на GitHub:
https://github.com/MicrosoftDocs/pipelines-go
Вход в Azure Pipelines
Войдите в Azure Pipelines. После входа в браузере откроется https://dev.azure.com/my-organization-name и отобразится панель мониторинга Azure DevOps.
В браузере перейдите к dev.azure.com и войдите в систему.
Выберите свою организацию.
Создайте новый проект, выбрав новый проект или создав проект при создании первого проекта в организации.
Заполните поле Имя проекта.
Выберите видимость проекта.
Нажмите кнопку создания.
В браузере перейдите на сервер Azure DevOps Server.
Выберите коллекцию.
Создайте новый проект, выбрав новый проект или создав проект при создании первого проекта в коллекции.
Заполните поле Имя проекта.
Выберите видимость проекта.
Нажмите кнопку создания.
Создание конвейера
Войдите в свою организацию Azure DevOps и откройте нужный проект.
Перейдите к конвейерам и выберите "Создать конвейер" или "Создать конвейер" при создании первого конвейера.
Выполните все шаги мастера, выбрав GitHub в качестве расположения исходного кода.
Возможно, вам придется выполнить вход в GitHub. Для этого введите учетные данные GitHub.
Когда появится список репозиториев, выберите свой.
Вы можете перенаправиться на GitHub, чтобы установить приложение Azure Pipelines. В этом случае выберите " Утвердить" и "Установить".
Когда появится вкладка "Настройка" , нажмите кнопку "Перейти". Появится новый конвейер с azure-pipelines.yml готовым к настройке ФАЙЛОМ YAML. Дополнительные сведения о более распространенных способах настройки конвейера см. в следующих разделах.
Среда сборки
Azure Pipelines можно использовать для создания проектов Go без настройки собственной инфраструктуры. Для выполнения сборок можно использовать агенты Linux, macOS или Windows.
Обновите следующий фрагмент кода в azure-pipelines.yml файле, чтобы выбрать соответствующее изображение.
Начиная с Go 1.11, вам больше не нужно определять $GOPATH среду, настраивать макет рабочей области или использовать dep модуль. Теперь управление зависимостями встроено.
Эта команда YAML реализует go get команду для скачивания пакетов Go и их зависимостей. Затем он используется go build для создания содержимого, опубликованного с PublishBuildArtifacts@1 задачей.
Как описывается в документации Go, рабочая область Go состоит из корневого каталога, в котором $GOPATH указывает переменная среды. В этом каталоге представлены следующие стандартные подкаталогы:
bin для хранения исполняемых команд
pkg для хранения скомпилированных пакетов (.a файлов)
src для хранения исходных файлов Go (.go, .c, .g, .s)
Когда сборка Azure Pipelines извлекает код из удаленный репозиторий, он помещает код в рабочий каталог сборки по умолчанию. Чтобы соответствовать ожидаемой структуре рабочей области Go, добавьте следующий фрагмент кода в azure-pipelines.yml файл. Этот сценарий выполняется в bash в агентах Linux и macOS, но их необходимо изменить для Windows.
YAML
variables: GOBIN:'$(GOPATH)/bin'# Go binaries path GOPATH:'$(system.defaultWorkingDirectory)/gopath'# Go workspace path modulePath:'$(GOPATH)/src/github.com/$(build.repository.name)'# Path to the module's codesteps:- script:|
mkdir -p '$(GOBIN)'
mkdir -p '$(GOPATH)/pkg'
mkdir -p '$(modulePath)'
shopt -s extglob
shopt -s dotglob
mv !(gopath) '$(modulePath)'
echo '##vso[task.prependpath]$(GOBIN)'
displayName:'Set up the Go workspace'- script:|
go version
go get -v -t -d ./...
if [ -f Gopkg.toml ]; then
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep ensure
fi
go build -v .
workingDirectory:'$(modulePath)' displayName:'Get dependencies, then build'
Если код не находится на сайте GitHub, измените modulePath использование github.com переменной на соответствующее значение для модуля.
Этот фрагмент выполняет следующие действия:
Задает $GOROOT версию Go, которую следует использовать.
Задает другие известные переменные среды Go соответствующими значениями.
Создает рабочую область Go в подкаталоге gopath с дочерними каталогами binи srcpkg.
Перемещает код, полученный из удаленный репозиторий в каталог рабочей области src
Добавляет версию Go и каталог рабочей области bin в путь.
Установка зависимостей
Использование go get
Используется go get для скачивания исходного кода для проекта Go или установки средства в рабочую область Go. Добавьте следующий фрагмент кода в azure-pipelines.yml файл:
YAML
- script:goget-v-t-d./... workingDirectory:'$(modulePath)' displayName:'go get dependencies'
Обеспечение использования dep
Используйте dep ensure , если проект использует dep для скачивания зависимостей, импортированных в код. Выполнение dep ensure клонов импортированных репозиториев в каталог поставщика проекта. Его Gopkg.lock и Gopkg.toml файлы гарантируют, что все, работающие над проектом, используют ту же версию зависимостей, что и сборка. Добавьте следующий фрагмент кода в azure-pipelines.yml файл.
Примечание
Следующий скрипт выполняется в агентах Linux и macOS и может использоваться для более старых версий Go, для которых требуется определенная структура папок. Скрипт написан для оболочки Unix, и в результате не удается работать с агентами Windows.
YAML
- script:|
if [ -f Gopkg.toml ]; then
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
dep ensure
fi
workingDirectory:'$(modulePath)' displayName:'Download dep and run `dep ensure`'
Сборка
Используется go build для создания проекта Go. Добавьте следующий фрагмент кода в azure-pipelines.yml файл:
Когда вы будете готовы, зафиксируйте новый файл azure-pipelines.yml в репозиторий и обновите сообщение фиксации. Выберите Сохранить и выполнить.
Если вы хотите просмотреть конвейер в действии, выберите сборку в параметре "Задания " на панели мониторинга Azure Pipelines.
Так как ваш код, как представляется, является хорошим совпадением для шаблона Go , мы автоматически создали конвейер.
Теперь у вас есть рабочий конвейер YAML (azure-pipelines.yml) в репозитории, готовый к настройке!
Когда вы будете готовы внести изменения в конвейер, выберите его на странице конвейеров и изменитеazure-pipelines.yml файл.
Совет
Чтобы внести изменения в файл YAML, как описано в этой статье, выберите конвейер на странице конвейеров и выберите команду "Изменить ", чтобы открыть редактор файла azure-pipelines.yml .
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
В этой схеме обучения описано, как сотрудничать с другими пользователями для непрерывного создания, тестирования и проверки приложений с помощью Azure Pipelines и GitHub.
Эта сертификация измеряет возможность выполнения следующих технических задач: проектирование и реализация процессов и коммуникаций, проектирование и реализация стратегии управления версиями, проектирование и реализация конвейеров сборки и выпуска, разработка плана безопасности и соответствия требованиям и реализация стратегии инструментирования.