LoginSignup
1
1

More than 5 years have passed since last update.

Universal Packageで何でもパッケージ管理

Last updated at Posted at 2019-01-29

Universal Package

Azure ArtifactsはAzure DevOpsの一部で、ビルドに必要なパッケージや生成物を管理することができます。Azure ArtifactsはMaven、npm、NuGetといったメジャーなパッケージマネージャーに対応していますが、それ以外のファイルを管理するにはどうしたらいいでしょうか。

Universal Packageはどんなファイルでも、1つにまとめて名前とバージョンをつけて保存できるパッケージ管理システムです。

大きなファイルでも効率的に転送できるよう設計されているので、ソースコードだけでなく、テストデータや学習データのようなgitで管理するには不向きなものを置いておく場所に使えそうです。

Universal Packageは現在、パブリックプレビューです。

フィードを作成

Azure DevOpsのプロジェクトページから「Artifacts」→「New feed」で任意の名前を入れてフィードを作成します。
Create new feed

フィードが空の状態
Empty feed

VSTS CLIをインストール

https://docs.microsoft.com/en-us/cli/vsts/install?view=vsts-cli-latest
上のURLの通り、VSTS CLIをインストールします。
Windowsの場合、vsts-cli-0.1.4.msiをダウンロードしてインストールします。

VSTSの認証

Personal access token (PAT)を作成

https://docs.microsoft.com/ja-jp/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azdevops
自分のプロフィール→「Security」→「Personal access tokens」→「New Token」でtokenを作成。tokenをメモしておきます。

CLIでログイン

> vsts login --token xxxxxxxxxx

先ほど取得したtokenを指定します。

Publish

パッケージしたいディレクトリに移動して、コマンドを実行します。
{myorg}は、自分のOrganizationに置き換えてください。


> vsts package universal publish `
  --instance "https://dev.azure.com/{myorg}" `
  --feed "testfeed" `
  --name "my-package" `
  --version "1.0.0" `
  --description "My description" `
  --path .

フィード名、パッケージ名、バージョンを指定します。オプションで説明をつけることもできます。

すると、このようにフィードに追加されます。
publish1

Download

パッケージをダウンロードしたいディレクトリに移動して、コマンドを実行します。

vsts package universal download `
  --instance "https://dev.azure.com/{myorg}" `
  --feed "testfeed" `
  --name "my-package" `
  --version "1.0.0" `
  --path .

更新

publishコマンドをそのままもう一度実行すると、すでにそのバージョンがあると怒られます。フィードから削除したとしても、履歴は残っていて、一度公開したバージョンを変更することはできません。

バージョン番号を変えて、Publishします。

> vsts package universal publish `
  --instance "https://dev.azure.com/{myorg}" `
  --feed "testfeed" `
  --name "my-package" `
  --version "1.0.1" `
  --description "My description" `
  --path .

フィードに2つのバージョンが追加されています。
publish2

まとめ

VSTSのUniversal Packageのコマンドはpublishdownloadの2つだけです。
例えば、既にローカルにダウンロードしたバージョンが何なのかを調べる方法はありません。

Azure CLIの使用について

Universal Packageの操作には、Azure CLIを使うこともできるはずです。

最初は、こちらの手順に沿って、Azure CLIを使ってやってみていたのですが、

az artifacts uinversal publishコマンドを実行しても、

Encountered an unexpected error.
Microsoft.VisualStudio.Services.Common.VssServiceException: TF400813: The user '#####################' is not authorized to access this resource.

というエラーが出て失敗しました。認証の問題だと思いますが、よく分からなかったので、今回はVSTS CLIの方を使ってみました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1