Azure DevOps サービス
ユニバーサル パッケージを使用すると、種類に関係なく、任意の数のファイルをパッケージ化し、チームまたは対象ユーザーと共有できます。 Azure Pipelines でユニバーサル パッケージ タスクを使用すると、4 TiB のパッケージをパック、発行、ダウンロードできます。 各パッケージは、一意の名前とバージョン番号で識別されます。 Azure CLI または Azure Pipelines を使用して、Artifacts フィードからパッケージを発行およびダウンロードできます。
手記
ユニバーサル パッケージは、Azure DevOps Services でのみ使用できます。
前提条件
| 製品 | 必要条件 |
|---|---|
| Azure DevOps | - Azure DevOps プロジェクト。 - アクセス許可: - プロジェクト内のすべてのパイプラインへのアクセスを許可するには、プロジェクト管理者グループのメンバーである必要があります。 - サービス接続を作成するには、サービス接続の管理者または作成者ロールが必要です。 |
ファイルをコピーする
Azure Pipelines のユニバーサル パッケージ タスクでは、発行するファイルの既定の場所として $(Build.ArtifactStagingDirectory) が使用されます。 発行用のユニバーサル パッケージを準備するには、発行するファイルをこのディレクトリに移動します。 ファイルの コピー ユーティリティ タスクを使用して、ファイルを発行ディレクトリにコピーすることもできます。
ユニバーサル パッケージを発行する
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
パイプラインを選択し、次にパイプライン定義を選択します。
編集を選択し、次のスニペットを 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 入力を追加します。 新しいバージョンを発行するために使用できるオプションは、 major、 minor、 patch、または 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
ユニバーサル パッケージをダウンロードする
Azure DevOps 組織にサインインしてから、プロジェクトに移動します。
パイプラインを選択し、次にパイプライン定義を選択します。
編集を選択し、次のスニペットを 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
ヒント
ワイルドカードを使用して、ユニバーサル パッケージの最新バージョンをダウンロードできます。 詳細については 、最新バージョンのダウンロード を参照してください。