JFrog CLIを使用したリリースバンドルの作成、更新、配布、削除方法

JFrog CLI and Distribution

このブログ記事ではJFrog CLIをJFrog Distributionワークフローで使用する方法について説明します。JFrog Distributionは中央集中型プラットフォームでソフトウェアのリリースを管理します。これにより、リリースバンドルを複数のリモートロケーションに安全に配布し、新しいリリースバージョンが作成されるたびに更新することができます。 JFrog Distributionの詳細はこちら >

JFrog CLIはシンプルなインターフェイスを使用してJFrogソリューションの作業を簡素化するクライアントアプリケーションです。 JFrog CLIの詳細はこちら >

JFrog CLI 1.35.1からDistribution 2.xのコマンドをサポートしています。コマンドリストの詳細はこちら >

注: JFrog Distribution 2.0以上が必要です。

設定

JFrog CLIをダウンロード後にインストールします。

JFrogプラットフォームはリリースバンドルと配布フローの操作にArtifactory (rt)を使用しますので、すべてのCLIコマンドのプレフィックスは”rt”で始める必要があります:

jfrog rt release-bundle-<command> <params>

リリースバンドルの作成

署名されていないリリースバンドルのバージョンは配布する最終バージョンの前に内容を更新することができます。

リリースバンドルを作成するための必須となる引数は以下になります:

  • リリースバンドル名(最大30文字)
  • リリースバンドルのバージョン(最大30文字)

Release BundleのFile Spec: リリースバンドルのバージョンに追加するアーティファクトを指定したFile Specへのパスです。JFrog CLIのFile Specの詳細はこちら >

jfrog rt rbc --spec=/Users/john/RB-spec.json myApp 1.0.0

File Specの例 – myAppRepo内のすべてのファイル:

{
  "files": [
    {
      "pattern": "/myAppRepo/"
    }
  ]
}

リリースバンドルのバージョンを作成する際にあらかじめ設定されたGPGキーを使って署名することで最終バージョンとすることも可能です:

jfrog rt rbc --spec=/Users/john/RB-spec.json --sign=”true” myApp 1.0.0

または

jfrog rt rbc --spec=/Users/john/RB-spec.json --sign myApp 1.0.0

注: リリースバンドルのバージョンに署名した後は更新できません。

リリースバンドルの更新

署名していないリリースバンドルのバージョンを更新する場合、release-bundle-update コマンドを使用することができます。パラメータはrelease-bundle-createと同じですが既存のリリースバンドルのバージョンに対してのみ実行可能です。

jfrog rt rbu --spec=/Users/john/RB-spec.json myApp 1.0.0

リリースバンドルの署名

リリースバンドルに署名することでリリースバンドルの作成プロセスが完了します。これにより、リリースバンドルのステータスが「署名済み」に設定され、リリースバンドルを編集することができなくなります。GPGキーがパスフレーズ付きで作成されている場合はコマンドで指定する必要があります。

jfrog rt rbs --passphrase="<passphrase>" myApp 1.0.0

注: パスフレーズはオプションです。GPGキーをパスフレーズ付きで生成した場合は指定が必要です。

リリースバンドルの配布

リリースバンドルの作成後、release-bundle-distributeコマンドを使用して、配布先として登録されているArtifactory Edgeノードに配布することができます。配布はルールファイル(JSON形式)で提供されている配布ルールに従って実施されます。

jfrog rt rbd --dist-rules=/Users/john/distribute-rules.json myApp 1.0.0

配布ルールの例 – すべてのEdgeノードに配布します:

{
  "dry_run": false,
  "distribution_rules": [
    {
      "site_name": "*",
      "city_name": "*",
      "country_codes": ["*"]
    }
  ]
}

リリースバンドルの削除

release-bundle-deleteコマンドでEdgeノードからリリースバンドルのバージョンを削除することができます。

Edgeノードからリリースバンドルのバージョンを削除します:

jfrog rt rbdel --dist-rules=/Users/john/distribute-rules.json myApp 1.0.0

コマンドに-quietを追加した場合は確認メッセージが表示されません:

jfrog rt rbdel --quiet --dist-rules=/Users/john/distribute-rules.json myApp 1.0.0

JFrog Distributionからリリースバンドルのバージョンを削除する場合は-delete-from-distパラメータを追加します:

jfrog rt rbdel --quiet --dist-rules=/Users/john/distribute-rules.json --delete-from-dist myApp 1.0.0

JFrog Distributionからリリースバンドルバージョンを削除してEdgeノードにコピーを残すこともできます(但し、推奨されません):

jfrog rt rbdel --quiet --delete-from-dist myApp 1.0.0

トラブルシューティング

コマンドラインでより多くの情報や冗長なメッセージを出力する場合は以下のようにログレベルにデバッグを設定します:

export JFROG_CLI_LOG_LEVEL=DEBUG

JFrog CLIを利用し、実際に試してください!