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


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

Azure DevOps Services

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

Заметка

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

Предпосылки

Продукт Требования
Azure DevOps - Проект Azure DevOps.
Разрешения - :
    — Чтобы предоставить доступ ко всем конвейерам в проекте, необходимо быть членом группы администраторов проектов.
    — Для создания подключений к службе необходимо иметь роль администратора или создателя для подключений служб .

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

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

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

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

  2. Выберите конвейеры и выберите определение конвейера.

  3. Нажмите кнопку "Изменить", а затем добавьте следующий фрагмент кода в конвейер YAML.

    - task: UniversalPackages@0
      displayName: Publish
      inputs:
        command: publish
        publishDirectory: '$(Build.ArtifactStagingDirectory)'        ## Location of the files you wish to publish
        vstsFeedPublish: '<PROJECT_NAME>/<FEED_NAME>'                ## The project and feed name to publish to. If you're working with an organization-scoped feed, specify only the feed name
        vstsFeedPackagePublish: '<PACKAGE_NAME>'                     ## The package name. Must be lower case. Use only letters, numbers, and dashes
        packagePublishDescription: '<PACKAGE_DESCRIPTION>'           ## Description of the package content
    

Заметка

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

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

Универсальные пакеты соответствуют семантическому версионированию, которое основано на трех числовых компонентах: Мажорной, Минорной и Патч. Формат версионирования Major.Minor.Patch.

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

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

Чтобы включить управление версиями для пакета, добавьте элемент ввода versionOption в задачу UniversagePackage. Доступные варианты публикации новой версии: major, , minorpatchили custom.

Выбор custom позволяет вручную указать версию пакета. Другие параметры получают последнюю версию пакета из вашего источника и увеличивают выбранный сегмент версии на 1. Например, если у вас есть пакет testPackage 1.0.0:

  • Выбор major обновит версию до testPackage 2.0.0.
  • При выборе minor будет обновлена версия до версии 1.1.0.
  • При выборе patch будет обновлена версия до версии 1.0.1.

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

- task: UniversalPackages@0
  displayName: Publish
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'             ## Location of the files you wish to publish
    vstsFeedPublish: '<PROJECT_NAME>/<FEED_NAME>'                     ## The project and feed name to publish to. If you're working with an organization-scoped feed, specify only the feed name
    vstsFeedPackagePublish: '<PACKAGE_NAME>'                          ## The package name. Must be lower case. Use only letters, numbers, and dashes
    versionOption: custom                                             ## Select a versioning strategy. Options: `major`, `minor`, `patch`, `custom`
    versionPublish: '<PACKAGE_VERSION>'                               ## The custom package version
    packagePublishDescription: '<PACKAGE_DESCRIPTION>'                ## Description of the package content

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

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

  2. Выберите конвейеры и выберите определение конвейера.

  3. Нажмите кнопку "Изменить", а затем добавьте следующий фрагмент кода в конвейер YAML.

    steps:
    - task: UniversalPackages@0
      displayName: Download
      inputs:
        command: download
        vstsFeed: '<PROJECT_NAME>/<FEED_NAME>'                        ## The Artifacts feed hosting the package to be downloaded
        vstsFeedPackage: '<PACKAGE_NAME>'                             ## Name of the package to be downloaded
        vstsPackageVersion: '<PACKAGE_VERSION>'                       ## Version of the package to be downloaded
        downloadDirectory: '$(Build.SourcesDirectory)\someFolder'     ## The download folder. Default value: $(System.DefaultWorkingDirectory).
    

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

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    feedsToUse: external                                        ## Set the value to `external` when downloading from an external source 
    externalFeedCredentials: 'MSENG2'                           ## Name of the service connection to the external feed
    feedDownloadExternal: 'fabrikamFeedExternal'                ## Name of the external feed
    packageDownloadExternal: 'fabrikam-package'                 ## The package name you wish to download
    versionDownloadExternal: 1.0.0                              ## The version of the package you wish to download

Совет

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