Azure Pipelines でユニバーサル パッケージを発行およびダウンロードする

Azure DevOps Services

ユニバーサル パッケージを使用すると、あらゆる種類のファイルをいくつでもパッケージにして、チームと共有できます。 Azure Pipelines のユニバーサル パッケージ タスクを使用すると、最大 4 TB までのさまざまなサイズのパッケージをパック、発行、ダウンロードできます。 各パッケージは、名前とバージョン番号によって一意に識別されます。 Azure CLI または Azure Pipelines を使用すると、Artifacts フィードからパッケージを発行および使用できます。

注意

ユニバーサル パッケージは、Azure DevOps Services でのみ使用できます。

ファイルのコピー

Azure Pipelines のユニバーサル パッケージ タスクは、既定の発行ディレクトリとして $(Build.ArtifactStagingDirectory) を使用するように設定されています。 ユニバーサル パッケージの発行準備を整えるために、そのディレクトリに発行するファイルを移動します。 また、ファイルのコピー ユーティリティ タスクを使用して、該当するファイルを発行ディレクトリにコピーすることもできます。

ユニバーサル パッケージの発行

Azure Artifacts フィードにユニバーサル パッケージを発行するには、次のタスクをパイプラインの 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 パッケージの名前です。 小文字にする必要があります。 文字、数字、ダッシュのみを使用してください。
packagePublishDescription パッケージ内容の説明。

パイプラインから Azure Artifacts フィードにパッケージを発行するには、フィードでパイプラインの ID をフィード発行者 (共同作成者) になるように設定する必要があります。 詳細については、「 Pipelines のアクセス許可」を参照してください。

外部フィードに発行する場合は、まず、フィードで認証するためのサービス接続を作成しておく必要があります。 詳細については、「サービス接続の管理」を参照してください。

パッケージのバージョン管理

ユニバーサル パッケージはセマンティック バージョン管理の仕様に従い、名前とバージョン番号で識別できます。 セマンティック バージョン番号は、メジャー、マイナー、パッチの 3 つの数値コンポーネントが Major.Minor.Patch の形式で構成されます。

マイナー バージョン番号は、以前のバージョンと下位互換性のある新機能が追加されると増分されます。この場合、マイナー バージョンを増分して、パッチ バージョンを 0 にリセットします (1.4.17 から 1.5.0)。 メジャー バージョン番号は、以前のバージョンとの互換性が損なわれる可能性のある大幅な変更がある場合に増分します。 この場合は、メジャー バージョンを増分し、マイナー バージョンとパッチ バージョンを 0 にリセットします (2.6.5 から 3.0.0)。 パッチ バージョン番号は、以前のバージョンとの互換性に影響を与えないバグ修正やその他の小さな変更のみが実施された場合に増分される必要があります (1.0.0 から 1.0.1)。

新しいパッケージを発行すると、ユニバーサル パッケージ タスクによって、次のメジャー、マイナー、またはパッチ バージョンが自動的に選択されます。

パッケージのバージョン管理を有効にするには、YAML ファイルに versionOption 入力を追加します。 新しいパッケージ バージョンを発行する際のオプションは、majorminorpatch、または 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 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 パッケージの名前です。 小文字にする必要があります。 文字、数字、ダッシュのみを使用してください。
versionOption バージョン管理戦略を選択します。 オプションは、majorminorpatchcustom です。
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'
引数 説明
vstsFeed ダウンロードするパッケージをホストしている Artifacts フィード。
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
引数 説明
feedsToUse 外部ソースからダウンロードする場合は、この値を external に設定します。
externalFeedCredentials 外部フィードへのサービス接続の名前。 詳細については、「サービス接続の管理」を参照してください。
feedDownloadExternal 外部フィードの名前。
packageDownloadExternal ダウンロードするパッケージの名前。
versionDownloadExternal ダウンロードするパッケージのバージョン。

ヒント

ユニバーサル パッケージの最新バージョンをダウンロードする場合は、ワイルドカードを使用できます。 詳細については、「最新バージョンのダウンロード」を参照してください。