LoginSignup
0
0

More than 3 years have passed since last update.

初心者向けCI/CD実践 - Part5 - CI/CDツールとその他ツールの併用例(インスペクションツール)編

Last updated at Posted at 2020-10-27

CI/CD環境を構築

本連載は、「CI/CDを実践してみたい」という超初心者向けの内容となっています
enterpriseレベルやproductionレベルの導入に際して、「CI/CDとは?」という感覚をつかむものとなれば幸いです。
利用するツール等はこちらで選定していますので、別のツールを利用する場合は、適宜お調べください。
大まかな内容としては、以下のようなフローとなります

  1. 環境構築
  2. CI/CDツールの構築
  3. 開発プロジェクトの準備
    • GitHubにプロジェクトデータを登録
    • Jenkins Pluginのインストール
    • 手動ビルド
  4. CI/CDツールとその他ツールの併用例
    1. テストツールとの協調
    2. インスペクションツールとの協調<-今回はここを説明
  5. pipelineの実現

概要

  • Checkstyle,FindBugsによるインスペクションをジョブに組み込む
  • インスペクション結果の確認方法
  • 結果から修正の高速サイクルを実感

ジョブの編集(インスペクションの自動化)

テストツールとの協調と同じ方法でビルド後の処理を追加する
今回はインスペクションツールとして、以下の2つを利用する

  • Checkstyle
  • FindBugs

手順は以下の通り、
JenkinsJOBのジョブを以下の手順で編集する
1. dashboardから中央ペインのJenkinsJOBを選択
2. 左ペインの設定
3. 設定画面下部のビルド後の処理にてCheckstyle警告の集計を選択し集計するファイルを入力
4. 設定画面下部のビルド後の処理にてFindBugs警告の集計を選択し集計するファイルを入力
4. 以下の通り、入力し設定を保存

スクリーンショット (4).png

テスト結果の確認

テスト結果は以下の通りとなり、[改訂第3版]Jenkins実践入門の内容とは異なる
書籍では、Checkstyleに6つの警告。FindBugsに1つの警告。

スクリーンショット (6).png

テスト結果をもとにコードの修正

前回同様、書籍で修正されている箇所を一度正しい結果から間違いの結果に戻してもいいのだが、今回は未修正の箇所を自力で治してみる

  1. Checkstyleの5 warningsをクリックし、警告内容の詳細を確認する
  2. 以下の通り、2つのパッケージ内に警告がある(今回は警告内容が4つとも同じ、jp.gihyo.jenkinsbook.dtoを修正)スクリーンショット (8).png
  3. jp.gihyo.jenkinsbook.dtoをクリックし、該当ファイルを選択スクリーンショット (10).png
  4. ファイルを開くと、警告の箇所が分かりやすく着色してあり、どのような警告内容か教えてくれるスクリーンショット (12).png
  5. 今回の警告内容は、class内で定義している変数名とそのclass内にあるメソッドで定義している変数名が一致していることが原因と判明.
  6. メソッドでの変数名を変更し、前回同様にGitへpushを行う
$ vi cicd-workspace/sampleproject/src/main/java/jp/gihyo/jenkinsbook/dto/SampleDTO.java   //メソッドの変数名を変更
$ cd cicd-workspace/sampleproject/
$ git diff   //変更内容の確認
diff --git a/src/main/java/jp/gihyo/jenkinsbook/dto/SampleDTO.java b/src/main/java/jp/gihyo/jenkinsbook/dto/SampleDTO.java
index 80c1c01..a970612 100644
--- a/src/main/java/jp/gihyo/jenkinsbook/dto/SampleDTO.java
+++ b/src/main/java/jp/gihyo/jenkinsbook/dto/SampleDTO.java
@@ -24,9 +24,10 @@ public class SampleDTO implements Serializable {
      * @param firstName first name of the user
      * @param lastName last name of the user
      */
-    public SampleDTO(final String firstName, final String lastName) {
-        this.setFirstName(firstName);
-        this.setLastName(lastName);
+
+    public SampleDTO(final String fName, final String lName) {
+        this.setFirstName(fName);
+        this.setLastName(lName);
         this.setMessage("Hello");
     }

@@ -58,16 +59,16 @@ public class SampleDTO implements Serializable {
      * Set first name of the user.
      * @param firstName first name of the user
      */
-    public final void setFirstName(final String firstName) {
-        this.firstName = firstName;
+    public final void setFirstName(final String FName) {
+        this.firstName = FName;
     }

     /**
      * Set last name of the user.
      * @param lastName last name of the user
      */
-    public final void setLastName(final String lastName) {
-        this.lastName = lastName;
+    public final void setLastName(final String LName) {
+        this.lastName = LName;
$ git add src/main/java/jp/gihyo/jenkinsbook/dto/SampleDTO.java
$ git commit -m 'fixed name in SampleDTO.java ')
$ git push origin master

再度ビルドを実行すると、エラー増えた、、、涙
スクリーンショット (14).png

でも、4 fixed warningsと先ほど修正した4箇所が即反映されていることが分かる
結果的にエラーは増えてしまったが、coding->build->test->coding...のサイクルを高速に回せることは実感

ホントはすべてのエラーを修正したいけど、今回は以上っっ(笑)

0
0
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
0
0