次の方法で共有


Azure Pipelines を使用してユニバーサル パッケージを発行してダウンロードする

Azure DevOps サービス

ユニバーサル パッケージを使用すると、種類に関係なく、任意の数のファイルをパッケージ化し、チームまたは対象ユーザーと共有できます。 Azure Pipelines でユニバーサル パッケージ タスクを使用すると、4 TiB のパッケージをパック、発行、ダウンロードできます。 各パッケージは、一意の名前とバージョン番号で識別されます。 Azure CLI または Azure Pipelines を使用して、Artifacts フィードからパッケージを発行およびダウンロードできます。

手記

ユニバーサル パッケージは、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
    

手記

パイプラインからフィードにパッケージを発行するには、 プロジェクト コレクション ビルド サービス とプロジェクトの ビルド サービス ID の両方にフィード設定の フィード パブリッシャー (共同作成者) ロールが付与されていることを確認します。 詳細については、 権限の管理 を参照してください。

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

ユニバーサル パッケージはセマンティック バージョン管理に準拠します。これは、メジャー、マイナー、パッチの 3 つの数値コンポーネントに基づいています。 バージョン管理の形式は Major.Minor.Patch

  • マイナー バージョンは、以前のバージョンと下位互換性のある新機能が追加されると増加します。 この場合、マイナー バージョンがインクリメントされ、パッチ バージョンが 0 にリセットされます (例: 1.4.17 から 1.5.0)。
  • メジャー バージョンは、以前のバージョンとの互換性を損なう可能性のある大幅な変更が発生した場合にインクリメントされ、マイナー バージョンとパッチ バージョンの両方が 0 (2.6.5 から 3.0.0 など) にリセットされます。
  • 互換性に影響しないバグ修正またはその他の小さな変更が適用されると、パッチ バージョンがインクリメントされます (例: 1.0.0 から 1.0.1)。

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

パッケージのバージョン管理を有効にするには、universalPackages タスクに 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
  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

ヒント

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