お、お久しぶりです…デベロッパーアドボケイトのよこなです。
登壇で使うデモで得た知見を少しずつブログ記事にしていきます。今回はJenkinsからArtifactoryへアーティファクトをプッシュするのに必要な設定です。
なおJenkinsには「フリースタイルジョブ」といってGUIを使って設定できるジョブもありますが、定義をJenkinsfileという設定ファイルでで書ける「Jenkins Pipeline」を使っていきます。
そうすると設定ファイルをSCM(Gitとかですね)で管理できるので設定の管理や再現が比較的楽になるというメリットがありますよ〜。
ところで素朴な疑問…フリースタイルは片仮名、Pipelineはアルファベットで表記することが多い気がします。なぜだろう。
まぁそれはいいとして、やっていくぞ〜
Artifactoryのプラグインをインストールする
まずはJenkinsでArtifactoryを使えるよう設定します。専用のプラグインがあるので簡単!
左側のメニューにある「Jenkinsの設定」から「プラグインの管理」を開いて…
↓
「利用可能」タブでArtifactoryを検索すれば出てくるのでインストールします。
※この操作は他とは別環境のまっさらなJenkinsで行ったので、スクショ内のJenkinsのバージョンが異なってUIも違います、すみません(バージョン違いでも大まかには同じです!)
プラグインの反映にはJenkinsの再起動が必要なので、止めて良いタイミング(≒ジョブの実行および実行予定がない時間帯)で忘れずに行ってくださいね。
Artifactoryと接続できるよう設定する
次はJenkinsの設定画面から「システムの設定」を開き、Artifactoryの認証情報を設定していきます。
プラグインをインストールしてあると、JFrogの設定エリアが登場します🎉
Add Artifactory Server
をクリックすると以下のような入力欄が表示されるので、Artifactoryのサーバーを指定してクレデンシャルを入力すれば完了です。
Server IDはArtifactoryのサーバーを識別できるよう自分で設定しましょう。この値はJenkinsfile内でも使います。
Jenkins側の設定はこれだけです。
Jenkinsfileの記載
Jenkinsfile内で行えるArtifactoryの操作一覧はJenkinsのプラグインページにあります。ただ、ここで見られるのは取れるパラメーターとその型の情報のみなので、参考情報にしかなりませんね…。 www.jenkins.io
JFrogのwikiの方が詳細な使い方を知るのには便利です。
www.jfrog.com
Javaのパッケージマネージャー「Gradle」を例に用いますが、例えば使用するリモートリポジトリ・ローカルリポジトリを設定する際は以下のように書きます。
// リモートリポジトリ(依存関係の解決先)を指定する rtGradleResolver( id: 'my-resolver', // Server IDと同じようにリポジトリを識別するために設定する serverId: 'my-artifactory-server', // 上で設定したServer IDはこのように使う repo: 'maven' // バーチャルリポジトリでもOK ) // ローカルリポジトリ(アーティファクトの保管先)を指定する rtGradleDeployer( id: 'my-deployer', // Server IDと同じようにリポジトリを識別するために設定する serverId: 'my-artifactory-server', // これも上で設定したServer ID repo: 'local-repo' // バーチャルリポジトリでもOK )
こんな感じでJenkins越しにArtifactoryをじゃんじゃん使えるようになりました。
参考までに私がデモで使っていたJenkinsfileも貼っておきますが、 「Jenkinsfileどうやって書くの?」というブログ記事もまた書きたいと思います。
github.com
あとさらっと出てきたバーチャルリポジトリって何ぞや?とか。
ということで久々すぎる投稿になってしまいました…2021年からは技術ネタもエモい話も色々出していくので本ブログをよろしくおねがいします😤💦