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


Источники артефактов в классических конвейерах выпуска

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

С помощью конвейеров классических выпусков можно развернуть артефакты из широкого спектра источников. С помощью графического интерфейса можно настроить конвейер для интеграции и использования артефактов из различных служб. Кроме того, можно связать несколько артефактов из разных источников и назначить их в качестве основного источника в зависимости от ваших потребностей.

Источники артефактов

Azure Pipelines поддерживает широкий спектр репозиториев, служб и платформ CI/CD. При создании выпуска можно указать версию источника артефакта. По умолчанию выпуски используют последнюю версию исходного артефакта. Вы также можете использовать последнюю сборку из определенной ветви, указав теги, определенную версию или разрешить пользователю указывать версию во время создания выпуска.

Снимок экрана, на котором показано, как добавить артефакт в классический конвейер выпуска.

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

Снимок экрана, на котором показано, как задать первичный исходный артефакт.

Параметры раскрывающегося списка версий по умолчанию зависят от типа источника связанного определения сборки. Параметры Specify at the time of release creationSpecific versionи Latest поддерживаются всеми типами репозитория. Однако определения Latest from the build pipeline default branch with tags сборки XAML не поддерживаются.

В следующих разделах описывается, как работать с различными типами источников артефактов:

Примечание.

При использовании нескольких источников артефактов сопоставление источника артефакта с активацией определенной стадии не поддерживается. Если вам нужна эта функция, Azure Pipelines рекомендует разделить конвейер выпуска на несколько выпусков.

Azure Pipelines

Классический конвейер выпуска можно связать с любым артефактом конвейера. Кроме того, можно связать несколько артефактов и настроить триггеры развертывания в нескольких источниках сборки. Эта программа установки создаст выпуск каждый раз, когда новая сборка станет доступной. При использовании Azure Pipelines в качестве источника артефактов доступны следующие функции:

Возможность Description
Выпуски автоматического триггера Новые выпуски можно создавать автоматически, когда доступен новый артефакт (включая сборки XAML). Дополнительные сведения см . в триггерах классического выпуска.
Переменные артефакта Ряд переменных артефактов поддерживаются для артефактов, на которые ссылается классический выпуск.
Рабочие элементы и фиксации Свяжите рабочие элементы, чтобы просмотреть их в сведениях о выпуске. Фиксации будут отображаться при использовании Git или TFVC.
Скачивание артефакта По умолчанию артефакты конвейера загружаются в агент, на котором выполняется конвейер. Вы также можете настроить шаг на этапе, чтобы пропустить скачивание артефакта при необходимости.
Этапы развертывания Сводка конвейера содержит список всех этапов развертывания, в которых развернут артефакт.

Примечание.

Чтобы опубликовать артефакт конвейера в классическом конвейере, необходимо добавить задачу PublishPipelineArtifact в конвейер. В конвейерах YAML артефакт удаления публикуется неявно.

Ограничение области авторизации задания

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

Чтобы задать область авторизации задания для организации, выполните следующие действия.

  1. Войдите в организацию Azure DevOps.

  2. Выберите параметры организации в левом нижнем углу.

  3. Выберите конвейеры> *Параметры.

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

    Снимок экрана, на котором показано, как задать область авторизации задания для организации.

Чтобы задать область авторизации задания для определенного проекта:

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите параметры проекта в левом нижнем углу.

  3. Выберите конвейеры> *Параметры.

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

    Снимок экрана, на котором показано, как задать область авторизации задания для проекта.

Примечание.

Если область задана на уровне организации, ее нельзя изменить по отдельности в каждом проекте.

Примечание.

По умолчанию выпуски выполняются с областью авторизации задания уровня коллекции, позволяя им получать доступ к ресурсам во всех проектах в коллекции.

Azure Repos, GitHub и TFVC

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

  • Разработка приложения PHP или JavaScript, не требующего явного конвейера сборки.

  • Управление конфигурациями для различных этапов в разных репозиториях управления версиями и использование этих файлов конфигурации непосредственно в рамках конвейера развертывания.

  • Управление инфраструктурой и конфигурацией в виде кода в репозитории управления версиями.

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

Azure Pipelines поддерживает репозитории Azure Repos, система управления версиями Team Foundation (TFVC) и репозитории GitHub. Конвейер выпуска можно связать с любым репозиторием Git или TFVC в коллекции проектов, если у вас есть доступ на чтение. Дополнительная настройка не требуется при развертывании артефактов управления версиями в той же коллекции.

При связывании репозитория GitHub и выборе ветви можно изменить свойства артефактов по умолчанию после сохранения артефакта. Это полезно, если изменяется стабильная ветвь версии, обеспечивая непрерывную доставку выпусков, используйте правильную ветвь для более новых версий артефактов. Вы также можете указать сведения о извлечении, такие как подмодулы, включение отслеживаемых файлов Git-LFS и неглубокое получение глубины.

При связывании ветви TFVC можно указать набор изменений для развертывания во время создания выпуска.

При использовании Azure Repos, Git и TFVC в качестве источника артефактов доступны следующие функции:

Возможность Description
Выпуски автоматического триггера Новые выпуски можно создавать автоматически, когда доступен новый артефакт (включая сборки XAML). Дополнительные сведения см . в разделе "Триггеры выпуска".
Переменные артефакта Ряд переменных артефактов поддерживаются для артефактов, на которые ссылается классический выпуск.
Рабочие элементы и фиксации Свяжите рабочие элементы, чтобы просмотреть их в сведениях о выпуске. Фиксации будут отображаться при использовании Git или TFVC.
Скачивание артефакта По умолчанию артефакты конвейера загружаются в агент, на котором выполняется конвейер. Вы также можете настроить шаг на этапе, чтобы пропустить скачивание артефакта при необходимости.

Примечание.

По умолчанию выпуски выполняются с областью авторизации заданий уровня организации, позволяя им получать доступ к ресурсам во всех проектах организации. Это полезно при связывании артефактов конвейера из других проектов. Чтобы ограничить доступ к артефактам проекта, включите область авторизации задания в текущий проект для конвейеров выпуска в параметрах проекта.

Примечание.

По умолчанию выпуски выполняются с областью авторизации задания на уровне коллекции, позволяя им получать доступ к ресурсам во всех проектах в коллекции. Это полезно при связывании артефактов конвейера из других проектов. Чтобы ограничить доступ к артефактам проекта, включите область авторизации задания в текущий проект для конвейеров выпуска в параметрах проекта.

Azure Artifacts

Ниже приведены некоторые сценарии, в которых можно использовать Артефакты Azure в качестве источника артефактов:

  • Двоичный файл приложения публикуется в Azure Artifacts и требуется использовать пакет в конвейере выпуска.

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

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

При использовании артефактов Azure в качестве источника артефактов доступны следующие функции:

Возможность Description
Выпуски автоматического триггера Новые выпуски можно создавать автоматически, когда доступен новый артефакт (включая сборки XAML). Дополнительные сведения см . в разделе "Триггеры выпуска".
Переменные артефакта Ряд переменных артефактов поддерживаются для артефактов, на которые ссылается классический выпуск.
Рабочие элементы и фиксации Свяжите рабочие элементы, чтобы просмотреть их в сведениях о выпуске. Фиксации будут отображаться при использовании Git или TFVC.
Скачивание артефакта По умолчанию артефакты конвейера загружаются в агент, на котором выполняется конвейер. Вы также можете настроить шаг на этапе, чтобы пропустить скачивание артефакта при необходимости.

Обработка моментальных снимков Maven

При использовании моментальных снимков Maven можно одновременно скачать несколько версий (напримерmyApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jar). myApplication-2.1.0.BUILD-20190820.220331-1.jar Возможно, вам потребуется удалить старые версии и сохранить только последнюю артефакту перед развертыванием.

Выполните следующую команду в командной строке PowerShell, чтобы удалить все копии, кроме копии с наибольшим лексографическим значением:

Get-Item "myApplication*.jar" | Sort-Object -Descending Name | Select-Object -SkipIndex 0 | Remove-Item

Примечание.

В веб-канале можно хранить до 30 моментальных снимков Maven. После достижения этого ограничения артефакты Azure автоматически удаляют старые моментальные снимки, чтобы сохранить только последние 25.

Репозиторий контейнеров Azure и Центр Docker

При развертывании контейнерных приложений образ контейнера сначала помещается в реестр контейнеров. Затем вы можете развернуть образ контейнера в веб-приложении Azure для контейнеров или в кластере Docker/Kubernetes. Для этого необходимо сначала создать подключение к службе для проверки подлинности с помощью Azure или Docker Hub. Дополнительные сведения см. в разделе "Подключение к службе реестра Docker".

Следующие функции доступны при использовании репозитория контейнеров Azure или Docker Hub в качестве источника артефакта:

Возможность Description
Выпуски автоматического триггера Новые выпуски можно создавать автоматически, когда доступен новый артефакт (включая сборки XAML). Дополнительные сведения см . в разделе "Триггеры выпуска".
Переменные артефакта Ряд переменных артефактов поддерживаются для артефактов, на которые ссылается классический выпуск.
Рабочие элементы и фиксации Свяжите рабочие элементы, чтобы просмотреть их в сведениях о выпуске. Фиксации будут отображаться при использовании Git или TFVC.
Скачивание артефакта По умолчанию артефакты конвейера загружаются в агент, на котором выполняется конвейер. Вы также можете настроить шаг на этапе, чтобы пропустить скачивание артефакта при необходимости.

Jenkins

Чтобы использовать артефакты Jenkins, необходимо создать подключение службы для проверки подлинности с помощью сервера Jenkins. Дополнительные сведения см. в разделе "Подключение службы Jenkins". Кроме того, проект Jenkins должен быть настроен с действием после сборки для публикации артефактов.

Артефакты, созданные сборками Jenkins, обычно распространяются в репозитории хранилища для архивации и совместного использования. Хранилище BLOB-объектов Azure является одним из таких репозиторий, что позволяет использовать проекты Jenkins, публикующие служба хранилища Azure в качестве источников артефактов в конвейере выпуска. Azure Pipelines автоматически скачивает эти артефакты из Azure в агент, на котором запущен конвейер. В этом сценарии подключение между агентом и сервером Jenkins не требуется, а размещенные в Майкрософт агенты можно использовать без предоставления сервера Jenkins в Интернете.

Следующие функции доступны при использовании Jenkins в качестве источника артефакта:

Возможность Description
Выпуски автоматического триггера Новые выпуски можно создавать автоматически, когда доступен новый артефакт (включая сборки XAML). Дополнительные сведения см . в разделе "Триггеры выпуска".
Переменные артефакта Ряд переменных артефактов поддерживаются для артефактов, на которые ссылается классический выпуск.
Рабочие элементы и фиксации Свяжите рабочие элементы, чтобы просмотреть их в сведениях о выпуске. Фиксации будут отображаться при использовании Git или TFVC.
Скачивание артефакта По умолчанию артефакты конвейера загружаются в агент, на котором выполняется конвейер. Вы также можете настроить шаг на этапе, чтобы пропустить скачивание артефакта при необходимости.

Примечание.

Azure Pipelines может не иметь возможности выполнять связь с сервером Jenkins, если он находится в частной корпоративной сети. В таких случаях можно интегрировать Azure Pipelines с Jenkins, настроив локальный агент, имеющий доступ к серверу Jenkins. Хотя имена проектов Jenkins могут не отображаться при связывании с конвейером, можно вручную ввести имя проекта в текстовом поле URL-адреса.

Псевдоним источника артефакта

Чтобы обеспечить уникальность каждого скачиваемого артефакта, каждый источник артефакта, связанный с конвейером выпуска, автоматически назначается определенное расположение загрузки, известное как псевдоним источника. К этому расположению можно получить доступ с помощью переменной: $(System.DefaultWorkingDirectory)\[source alias]

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

По умолчанию исходный псевдоним — это имя источника артефакта, префиксированного символом подчеркивания (например, _mslearn-tailspin-spacegame-web). Исходный псевдоним может соответствовать имени конвейера сборки, имени задания, имени проекта или имени репозитория в зависимости от типа источника артефакта. Вы можете изменить исходный псевдоним на вкладке артефактов в конвейере выпуска.m вкладка артефактов конвейера выпуска.

Скачивание артефакта

Когда развертывание на этапе завершено, артефакты с версиями из каждого источника загружаются в агент конвейера, чтобы задачи на этом этапе могли получить к ним доступ. После завершения выпуска эти загруженные артефакты не удаляются. Однако при запуске нового выпуска предыдущие артефакты удаляются и заменяются новыми.

Уникальная папка создается на агенте для каждого конвейера выпуска при запуске выпуска, а артефакты загружаются в эту папку:$(System.DefaultWorkingDirectory).

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

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

Снимок экрана, на котором показано, как пропустить автоматическую загрузку артефактов в классическом конвейере выпуска в Azure DevOps Services.

Чтобы пропустить автоматическое скачивание артефактов, перейдите к заданию> агента задач>конвейера>выпуска и установите флажок "Пропустить скачивание артефактов".

Снимок экрана, на котором показано, как пропустить автоматическую загрузку артефактов в классическом конвейере выпуска на Azure DevOps Server.