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


Публикация и скачивание универсальных пакетов с помощью Azure Pipelines

Azure DevOps Services

Универсальные пакеты позволяют упаковать любое количество файлов любого типа и поделиться ими с командой. С помощью задачи универсального пакета в Azure Pipelines можно упаковывать, публиковать и скачивать пакеты различных размеров до 4 ТБ. Каждый пакет однозначно идентифицируется с именем и номером версии. Можно использовать Azure CLI или Azure Pipelines для публикации и использования пакетов из каналов Artifacts.

Заметка

Универсальные пакеты доступны только в Azure DevOps Services.

Копирование файлов

Задача универсальных пакетов в Azure Pipelines использует $(Build.ArtifactStagingDirectory) в качестве каталога публикации по умолчанию. Чтобы подготовить универсальный пакет для публикации, переместите файлы, которые вы хотите опубликовать в этом каталоге. Вы также можете использовать задачу копирования файлов для копирования этих файлов в директорию публикации.

Публикация универсального пакета

Чтобы опубликовать универсальный пакет в канале артефактов Azure, добавьте следующую задачу в файл YAML конвейера.

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    packagePublishDescription: '<Package description>'
Аргумент Описание
publishDirectory Расположение файлов, которые вы хотите опубликовать.
vstsFeedPublish Имя проекта и канала для публикации. Если вы работаете с организационным каналом, укажите только название канала.
vstsFeedPackagePublish Имя пакета. Необходимо использовать строчные буквы. Используйте только буквы, цифры и дефисы.
описание публикации пакета Описание содержимого пакета.

Чтобы опубликовать пакеты в канал Azure Artifacts из конвейера, идентификатор конвейера должен иметь роль Издатель канала (Участник) на этом канале. Дополнительные сведения см. в разделе Разрешения конвейерных процессов.

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

Управление версиями пакетов

Универсальные пакеты соответствуют спецификации семантического управления версиями и могут быть определены по их именам и номерам версий. Семантические номера версий состоят из трех числовых компонентов: Major, Minor, и Patch, в формате: Major.Minor.Patch.

Минорная версия увеличивается при добавлении новых функций, которые являются обратно совместимыми с предыдущими версиями, в этом случае вы увеличиваете минорную версию и сбрасываете номер патча до 0 (с1.4.17 до 1.5.0). Основной номер версии увеличивается при наличии значительных изменений, которые могут нарушить совместимость с предыдущими версиями. В этом случае увеличьте основную версию и сбросьте минорную и патч версии до 0 (2.6.5 до 3.0.0). Номер версии исправления следует увеличить при внесении только исправлений ошибок или других небольших изменений, которые не влияют на совместимость с предыдущими версиями (1.0.0 для 1.0.1).

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

Чтобы включить управление версиями для пакета, добавьте versionOption вход в ваш файл YAML. Варианты публикации новой версии пакета: major, minor, patchили custom.

Выбор custom позволяет вручную указать версию пакета. Другие параметры получают последнюю версию пакета из репозитория и прибавляют 1 к выбранному сегменту версии. Поэтому, если у вас есть testPackage 1.0.0, и выберите параметр major, новый пакет будет testPackage 2.0.0. Если выбрать опцию минорный, версия пакета будет 1.1.0, а если выбрать опцию патч, версия пакета будет 1.0.1.

Если выбрать параметр custom, необходимо также указать значение versionPublish следующим образом:

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    versionOption: custom
    versionPublish: '<Package version>'
    packagePublishDescription: '<Package description>'
Аргумент Описание
publishDirectory Расположение файлов, которые вы хотите опубликовать.
vstsFeedPublish Название проекта и канала, в который публикуется. Если вы работаете с веб-каналом с областью организации, укажите только имя канала.
vstsFeedPackagePublish Имя пакета. Должен быть написан в нижнем регистре. Используйте только буквы, цифры и дефисы.
опция версии Выберите стратегию управления версиями. Параметры: major, minor, patch, custom.
публикацияВерсии Кастомная версия пакета.
packagePublishDescription Описание содержимого пакета.

Скачивание универсального пакета

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

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    vstsFeed: '<projectName>/<feedName>'
    vstsFeedPackage: '<packageName>'
    vstsPackageVersion: '<packageVersion>'
    downloadDirectory: '$(Build.SourcesDirectory)\someFolder'
Аргумент Описание
vstsFeed Веб-канал Артефактов, на котором размещается пакет для скачивания.
vstsFeedPackage Имя скачиваемого пакета.
vstsPackageVersion Версия пакета, который нужно скачать.
каталог загрузок Папка назначения пакета. Значение по умолчанию: $(System.DefaultWorkingDirectory).

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

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    feedsToUse: external
    externalFeedCredentials: 'MSENG2'
    feedDownloadExternal: 'fabrikamFeedExternal'
    packageDownloadExternal: 'fabrikam-package'
    versionDownloadExternal: 1.0.0
Аргумент Описание
каналыДляИспользования Задайте значение external при скачивании из внешнего источника.
externalFeedCredentials Имя подключения службы к внешнему источнику данных. Дополнительные сведения см. в разделе управления подключениями служб.
загрузка внешнего фида Имя внешнего веб-канала.
загрузкаВнешнегоПакета Имя пакета, которое вы хотите скачать.
версияСкачатьИзвне Версия пакета, который вы хотите скачать.

Совет

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