Публикация и скачивание Universal Packages в Azure Pipelines

Azure Pipelines

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

Примечание

Universal Packages доступны только для Azure DevOps Services.

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

По умолчанию задача Universal Packages использует в $(Build.ArtifactStagingDirectory) качестве каталога публикации. Чтобы подготовить универсальный пакет для публикации, поместите файлы, которые нужно опубликовать, в этот каталог. Для копирования этих файлов в каталог публикации можно также использовать задачу « копирование файлов ».

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

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

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

чтобы опубликовать пакеты в канале Azure Artifacts из конвейера, необходимо добавить удостоверение службы сборки Project Collection в качестве участника из параметров веб-канала. Дополнительные сведения см. в разделе Добавление разрешений для пользователей и групп в веб-канал .

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

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

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

При освобождении новой обратной совместимости вы увеличиваете дополнительный номер версии и сбрасываете версию исправления до 0 ( 1.4.17 до 1.5.0 ), и при внесении обратно несовместимого изменения вы увеличиваете основную версию и сбрасываете дополнительные версии и версию исправления до 0 ( 2.6.5 до 3.0.0 ). Номер версии исправления должен быть увеличен в случае исправления ошибки ( 1.0.0 в 1.0.1 ).

Задача Universal Packages автоматически выбирает следующую основную, дополнительную или версию исправления при публикации нового пакета.

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

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

Следует помнить, что при выборе custom параметра необходимо также указать, versionPublish как показано ниже.

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

Загрузка универсального пакета

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

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

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

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

Примечание

Можно использовать подстановочные знаки в строке, которую можно передать команде download, чтобы скачать последнюю версию универсального пакета. Дополнительные сведения см. в разделе Краткое руководство по Universal Packages .

Next Steps