【CI/CD実習】GitLab→Jenkins→Artifactoryの動作検証 後半

[前回](https://qiita.com/fy406/items/7172ed5d3daf6258f5e2)に引き続きGitLab・Jenkins・Artifactoryの連携について実験してみました。
今回はJenkinsの自動ビルドで作成された成果物をArtifactoryのリポジトリに自動で格納を行います。

# Artifactoryにてリポジトリ作成
まずはArtifactory側でリポジトリを作成します。
今回は普通のGenericで作成します。
Artifactoryのトップページから画面左側メニューの「Administrator」 - 「Repositories」をクリックします。
![test_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/0e2c0765-7513-f215-6f79-d099a28d1014.png)
画面右上にある「Add Repositories」をクリックします。
するとリポジトリの種類を尋ねられるので、「Local Repositories」を選択します。
![test_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/3cc94788-d4b4-e070-a26c-4729b984a116.png)
次にリポジトリタイプが表示されるので、その中から今回は「Generic」を選択します。
![test_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/3792fc4d-57c7-7371-e67b-37877930b13e.png)
リポジトリの作成画面が表示されました。
「Repository Key」にリポジトリ名を入力し、「Save & Finish」をクリックします。
![test_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/1845e2c5-d7cc-34c6-e2c9-a1477b7ea4c8.png)
作成が完了すると、以下のようにリポジトリの追加が完了したというメッセージが表示されます。
以上でArtifactory側の準備は完了です。
![test_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/56ca0b25-202f-44ac-678f-3ef10874e0d2.png)

# JenkinsのジョブにArtifactoryのリポジトリへPushする設定追加
次に作成したリポジトリへPushするための設定をJenkinsのジョブに追加します。
前回Jenkinsに作成したジョブを開き、「設定」をクリックします。
![test_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/e4475680-0be0-2d2c-2245-5c5a1053e49d.png)
設定画面の「ビルド」にて前回設定したシェルスクリプトにコマンドを追加します。
追加するコマンドはArtifactoryの「Set Me Up」に掲載されていますので、一度Artifactoryへ戻ります。
![test_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/989dd990-e602-d36f-cd58-b3986863973f.png)
Artifactoryへ戻り、「Application」 - 「Artifactory」 - 「Artifacts」をクリックします。
![test_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/bd399e8a-5798-d596-f704-98ca6338af8b.png)
先程作成したリポジトリをクリックし、右上にある「Set Me Up」をクリックします。
![test_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/c7eba2d1-feb7-2bc2-94a8-91c9c12ac567.png)
「Set Me Up」画面の「Deploy」という項目にあるコマンドをコピーします。
![test_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/e01d38f0-da39-fdd9-8940-c05ecf3b8333.png)
コマンドをコピーしたらJenkinsへ戻り、シェルスクリプトへコマンドを貼り付けします。
貼り付けしたコマンドに認証情報を入力してから「保存」をクリックします。
以上で設定は完了です。
![test_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/4ec35d84-03a6-8a29-1ee9-8aab4a08c0c6.png)

# ビルド実行
事前準備が完了しましたので、ビルドを実行してみます。
左側にある「ビルド実行」をクリックしてビルドを実行します。
しばらくすると以下画面の緑枠の部分が青色の丸になりますので、「#2」の部分をクリックします。
もし赤丸になってしまったらビルド失敗です。
![test_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/244c0547-ec41-890f-bce3-fa1936f5a898.png)
今回はビルドに成功していますので、青い丸が表示されていました。
「コンソール出力」をクリックし、ビルドの詳細を確認します。
![test_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/f06f5d4d-593f-da55-395b-73d5a43ee2a9.png)
以下の通り前回実行したコマンドに加え新たに今回追加したArtifactoryのリポジトリへファイル転送するコマンドの結果が表示されました。
エラーを示す文言は特に見受けられなかったので、ファイル転送も成功しているようです。
※出力結果が少々長いので一部省略しています。
![test_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/52d17a15-d236-84f4-14fe-e2e5c6919234.png)
Artifactoryのリポジトリを確認してみると、ちゃんとjarファイルがアップロードされていることがわかります。
![test_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/734872c7-a9a6-fd56-016a-7c69695d84a7.png)

# jarファイルの取得と中身の確認
アップロードされたjarファイルをダウンロードし、実行してみます。
まずは「Set Me Up」からダウンロード方法を確認します。
![test_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/bcce026f-5c22-6294-b078-7fe34d711bb1.png)
ダウンロードするには「Resolve」に掲載されているコマンドを実行します。
以下青枠内のコマンドをコピーします。
![test_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/858317/4ed75697-635b-a1c3-e6ce-e732c2a8ec09.png)
認証情報やターゲットファイル名を書き換えて、端末でコマンドを実行します。
以下実行結果です。

```
[root@localhost test]# pwd
/root/test
[root@localhost test]# curl -u <username>:<password> -O "https://<Artifactory FQDN>/artifactory/jar_test/javatest.jar"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   767  100   767    0     0   1371      0 --:--:-- --:--:-- --:--:--  1369
[root@localhost test]# ll
合計 4
-rw-r--r--. 1 root root 767  1月 31 18:22 javatest.jar
[root@localhost test]#
```

取得は正常に完了しましたので、次はjarファイルを実行していきます。
結果、```Hello World```と返ってきましたので、中身も正常であることが分かりました。

```
[root@localhost test]# java -jar /root/test/javatest.jar
Hello World
[root@localhost test]#
```

以上でGitLab・Jenkins・Artifactoryの連携実験は完了です。