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


Публикация и скачивание Universal Packages с помощью Azure Pipelines

Azure DevOps Services

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

Примечание.

Универсальные пакеты доступны только в 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>'
Аргумент Description
publishDirectory Расположение файлов, которые вы хотите опубликовать.
vstsFeedPublish Имя проекта и канала для публикации. Если вы работаете с веб-каналом область организации, укажите только имя канала.
vstsFeedPackagePublish Имя пакета. Должен быть нижним регистром. Используйте только буквы, цифры и дефисы.
packagePublishDescription Описание содержимого пакета.

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

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

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

Универсальные пакеты соответствуют спецификации семантического управления версиями и могут быть определены по их именам и номерам версий. Номера семантических версий состоят из трех числовых компонентов, основных, дополнительных и исправлений в формате: 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, , minorpatchили custom.

Выбор custom позволяет вручную указать версию пакета. Другие параметры получают последнюю версию пакета из веб-канала и увеличивают выбранный сегмент версии на 1. Таким образом, если у вас есть testPackage 1.0.0 и выберите основной вариант, новый пакет будет 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>'
Аргумент Description
publishDirectory Расположение файлов, которые вы хотите опубликовать.
vstsFeedPublish Имя проекта и канала для публикации. Если вы работаете с веб-каналом область организации, укажите только имя канала.
vstsFeedPackagePublish Имя пакета. Должен быть нижним регистром. Используйте только буквы, цифры и дефисы.
versionOption Выберите стратегию управления версиями. Доступные варианты: major, minor, patch, custom.
versionPublish Пользовательская версия пакета.
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'
Аргумент Description
vstsFeed Веб-канал Артефактов, на котором размещается пакет для скачивания.
vstsFeedPackage Имя скачиваемого пакета.
vstsPackageVersion Версия пакета, который нужно скачать.
downloadDirectory Папка назначения пакета. Значение по умолчанию: $(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
Аргумент Description
feedsToUse Задайте значение external при скачивании из внешнего источника.
externalFeedCredentials Имя подключения службы к внешнему веб-каналу. Дополнительные сведения см. в разделе "Управление подключениями к службе".
feedDownloadExternal Имя внешнего веб-канала.
packageDownloadExternal Имя пакета, которое вы хотите скачать.
versionDownloadExternal Версия пакета, который вы хотите скачать.

Совет

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