JFrog CLIを使ったnpmパッケージ
JFrog CLIはシンプルなインターフェイスを提供するコンパクトでスマートなクライアントで、JFrog Artifactoryの操作の大幅な簡略化を可能としています。シンプルなコマンドが用意されているため、メンテナンスが容易になり効果的で信頼性が高く、可読性の高い自動スクリプトの作成が可能です。
JFrog CLIのバージョン1.13.1以降ではMavenやGradleを使ったビルドサポートに加え、npmパッケージをサポートしています。このブログ記事ではnpmクライアントと連携してnpmビルドを管理するために利用可能なnpmコマンドについて説明します。
JFrog CLIを使うと:
- npmビルド情報をArtifactoryに収集可能
- Artifactoryへのデプロイ後は簡単にビルド情報のトレースが可能
- 使用中の依存関係を透過的に表示
- ビルド環境に関する情報の生成
- JFrog Xrayに接続することにより潜在的に脆弱性のあるビルドのスキャンが可能
- ビルドのプロモーションが可能
以下の手順でnpmをビルドします:
- プロジェクトのクローンの作成
- JFrog CLIを使ったArtifactoryの設定
- npmパッケージのインストール
- npmパッケージの公開
- ビルドのスキャン
- ビルドプロモーション
前提条件
事前に以下の項目を完了させておく必要があります。
- 以下のコマンドでJFrog CLIをインストールする:
$ curl -fL https://getcli.jfrog.io | sh
- またオプションとして以下の環境を設定してください:
- npmクライアントのダウンロードとインストール
- Artifactory version 5.5.2以降のダウンロード
- Xrayのダウンロード
1. プロジェクトのクローンの作成
どのnpmプロジェクトでもクローンを作成できますが、この例ではGitコマンドでtwbs Bootstrapプロジェクトのクローンを作成しています:
$ git clone https://github.com/twbs/bootstrap.git
2. JFrog CLIを使ったArtifactoryの設定
設定は次のコマンドを実行するだけです:
$ jfrog rt config
続いて以下のコマンドを使ってArtifactoryサーバ名、URL、ユーザ名、パスワードを設定します:
これで接続は完了です。
3. npmパッケージのインストール
依存関係のソースとしてnpm仮想リポジトリを参照するnpmインストールコマンドを実行します:
$ jfrog rt npmi npm-virtual --build-name=bootstrap --build-number=1.0.0
このコマンドでプロジェクトをインストールし、ソースとするnpmリポジトリを参照します。
知識は力なり
次は情報の生成です。build-add-gitコマンドでGit VCSの詳細を追加してください:
$ jfrog rt bag bootstrap 1.0.0
また、次のbuild-collect-envコマンドを使って環境変数を収集できます:
$ jfrog rt bce bootstrap 1.0.0
4. npmパッケージの公開
重要事項:既存npmスクリプトで変更すべき点
もし既にnpmスクリプトがある場合にはpackage.jsonファイルで既存のprepublishとpostpublishスクリプト名を変更しておくことを推奨します。JFrog CLIでnpm-publishコマンドを実行する時には、packコマンドが公開されている標準コマンドではなくバックグランドで実行されます。npmパッケージにprepublishやpostpublishスクリプトが含まれる場合には、それぞれprepack、postpackにスクリプト名を変更してください。
npm-publishコマンドを使うことで、Artifactoryにあるnpmリポジトリへパッケージを圧縮してデプロイが可能です。例えば、-server-idフラグを使ってパッケージを他のサーバにアップロードするオプションフラグの追加も可能です。
以下のコマンドを実行し、パッケージを公開します:
$ jfrog rt npmp npm-virtual --build-name=bootstrap --build-number=1.0.0
これでビルド情報をArtifactoryに渡す準備ができました。
ビルド公開(bp)コマンドを実行します:
$ jfrog rt bp bootstrap 1.0.0
npmパッケージがArtifactoryに表示されます。
bpコマンド実行後は、Artifactoryでビルド情報の参照、モジュールや環境変数の表示が可能です。
5. ビルドのスキャン
JFrog XrayはArtifactoryと連携し、どの開発段階においてもアプリケーションのバイナリデータを総合的に分析します。Xrayはバイナリコンポーネントとメタデータをスキャンし、あらゆる開発段階の依存関係を再帰的に分析して組織全体のコンポーネントに潜む問題を今まで実現できなかったレベルで可視化します。
以下のようにXrayを使ってNew watchからwatchを新規作成し、ビルドをスキャンします:
Watchでactionを追加してください。また複数のactionを追加する場合にはAdd Actionを使います。
JFrog CLIはJFrog Artifactoryを介してJFrog Xrayと統合します。アーティファクトや依存関係をスキャンする事で脆弱性や他の問題を検知し、解決できます。この統合にはJFrog Artifactory v4.16以降およびJFrog Xray v1.6以降が必要です。
以下のコマンドでビルドをスキャンします:
$ jfrog rt bs bootstrap 1.0.0
6. ビルドプロモーション
ビルドプロモーションでは通常、テストやビルドスキャンの後に実行され、オプションとしてアーティファクトやその依存関係を目的のリポジトリに移動またはコピーします。
ビルドスキャン後はbuild promoteコマンドを使ってArtifactoryでビルドをプロモーションします。このコマンドには–comment や –statusフラグなど多数のオプションフラグが用意されています。
以下のコマンドでビルドをプロモーションします:
$ jfrog rt bpr bootstrap 1.0.0 npm-virtual
Artifactoryでビルドプロモーション:
これで完了です。
Travis CIでJFrog CLIを使用する記事やビルド出力のソートと制限に関する記事など今後の投稿にご注目ください。