Spring BootのGradleプロジェクトをJenkinsでCIしてみる

本エントリーは下記バージョンで動作確認しています。

Jenkins 2.121.1
Spring Boot 2.0.1
Java OracleJDK 8

GitHubで管理しているSpring Bootプロジェクトを
Jenkinsでビルドし、ユニットテストを実施してみました。
その時の設定箇所を記載します。

設定箇所

新規ジョブ作成時は「フリースタイル・プロジェクトのビルド」を選択

f:id:yasay:20180706142041p:plain

ソースコード管理でGitHubリポジトリ情報を入力

今回はGitHubからソースをダウンロードしてビルドしますので、
Gitを選択します。リポジトリURLと認証情報を入力します。
認証情報はGitHubのユーザーIDとパスワードを使用しました。
f:id:yasay:20180706142656p:plain

ビルド・トリガを指定。今回は定期的に実行。

cronの書式で入力する。今回は30分に一度ビルドが走るように設定。
f:id:yasay:20180706142959p:plain

ビルド環境の設定

「ビルド開始前にワークスペースを削除する」をオン。
この設定をオンにした経緯は、ビルド後の処理である「テスト結果の集計」で
日付の古いxmlファイルを見ようとしてビルドエラーになってしまったためになります。
f:id:yasay:20180706154355p:plain

ビルドタスクの追加

  1. 「ビルド手順の追加」 -> 「Invoke Gradle script」を選択
  2. 「Use Gradle Wrapper」を選択し、「Make gradlew executable」にチェックを入れる。
    • 今回はGradle Wrapperを使用しています。"gradlew bootJar"などのコマンドを実行することで、Gradleをインストールしていなくてもビルドなどを実行することができます。
  3. Tasksの入力項目に"bootJar"と入力します。

f:id:yasay:20180706143705p:plain

テストタスクの追加

前項のビルドタスクの追加と同様の手順を行った後、
Tasksの入力項目に"test"と入力します。
f:id:yasay:20180706143853p:plain

JUnitテスト結果の集計タスクを追加

  1. 「ビルド後の処理の追加」 -> 「JUnitテスト結果の集計」を選択
  2. 画像を参考にして、テスト結果xmlファイルのパスを指定する。

f:id:yasay:20180706154720p:plain

さっそくジョブを起動してみます。成功しました!

f:id:yasay:20180706144751p:plain

ユニットテストの結果を確認することも可能です。

testコマンドは標準でhtml出力されるようで、下記の手順で閲覧することが可能です。

  1. ジョブのワークスペースを選択する
  2. 「build / reports / tests / test」に移動するf:id:yasay:20180706145051p:plain
  3. index.htmlを選択する。f:id:yasay:20180706145159p:plain

テストサマリーが表示されました!

今回はVagrantとDockerで起動したJenkinsサーバー上で動かしました。
気軽にCIを実践できるよい時代になったものですね!

以上です!