LoginSignup
29
35

More than 5 years have passed since last update.

具体例から学ぶJenkinsの設定

Posted at

はじめに

自分のプロジェクトで回している自動テストに関するジョブについて簡単に説明します。
体系的な話は本を読んでもらうとして、ここでは個別具体的な話だけします。

jenkinsの設定の見方

プロジェクト名と説明欄

そのままなので特に言うこともない。
強いていうなら、説明は正しく書きましょう。
※キャプチャの説明文をもうちょっと正確に書くなら「15分毎に開発ブランチをチェックして変更があれば実行する」かな。
image.png

古いビルドの破棄

これはビルド実施完了時に、「14日以前」もしくは「15件目を超える」ジョブ履歴を消す設定になっています。
ビルドの実施完了時に削除処理が走るので、月に1度しか動かなさいジョブなら、ジョブを実行するまで前回分(1ヶ月前)のジョブ履歴は残っています。
image.png

ソースコード管理

Gitのリポジトリを指定して持ってきています。
まぁ要はcloneないしはpullするリポジトリ。
ちなみに、Stashってのは、Bitbucket Serverの旧名称です。
image.png

ビルドトリガー

これは「Software Configuration Management(ソフトウェア構成管理)」を15分ごとにチェックするという話。
対象は、さっきソースコード管理で指定したリポジトリです。
スケジュール設定の仕方に関しては、「[Jenkins] ビルドトリガ(定期的に実行)設定についてのまとめ」が分かりやすい。
image.png

ビルド環境

ビルド時の環境設定をします。
ここではログの色付けを指定しているだけです。
image.png

ビルド

ビルドというフェーズで何をするのかを定義する場所です。
ビルドする際に、もう一個インプットになるリポジトリがあるので、それを持ってきてから、mavenを実行しています。
ゴールってのは、要はmaven実行時のオプションです。
image.png

補足:
mavenオプションはいくつかありますが、ざっくり以下ぐらいを知っておけば、最低限のことはわかるはず。
各phaseでやることはデフォルトで結構決まってます。独自の設定はpomに規定されるので、それを確認しましょう。
なお、phaseとかgoalって何?って人は、一番下に参考記事(チュートリアルとか)載せておいたので、そちら見て下さい。

phase/goal 概要 補足
clean 以前のビルドが作成した全てのファイルを削除する。 高速化のために結構色々キャッシュしているらしいので、挙動が怪しいと感じたらcleanするのが良さそう。
verify 品質基準を満たしているかどうかを確認するために任意のチェックを実行する。 ウチのPJではテストと静的解析をしてます。
package jarファイル等のアーカイブにパッケージングする。 jar作るって話。
deploy パッケージをリモートリポジトリへ格納したり、ある環境へデプロイしたりする。 ウチのPJではartifactoryへの更新を行なっている。
option 概要
-U,--update-snapshots リモートリポジトリで更新されたreleaseとsnapshotのチェックを必須にする。
-X,--debug mavenのデバッグモード
-DskipTests=true テストの実行のみをスキップする
-Dmaven.test.skip=true テストコードのコンパイル、およびテストの実行をスキップする

他にも
こんなことができるヨ。
image.png

ビルド後の処理

まぁ、まんまですが。。。
Maven verifyでcheckstyleやらfindbugsやらのレポートが生成されるので、そのレポートをjenkinsから見れるようにします。
image.png

未解決タスクの集計もおなじですね。
image.png

ディスク容量のチェックはプラグインで実現しています。
テスト結果/htmlreportは先程のcheckstyle等と同様でmavenから出力された結果を見えるようにしている感じです。
image.png

stepcounterはプラグイン自身に数えてもらってます。
SonarQubeとの連動はここで設定されます。
EmotionalJenkinsはビルド後のおじさんの表情を変えるプラグインです。
image.png

jenkins tips

結局、mavenは何をしているの?
pom.xmlを見ましょう。

生成したファイルはどこ?

Jenkinsの管理>システム情報>user.homeプロパティ

上記プロパティで指定されたディレクトリ配下に「workspace」というディレクトリがあり、その配下にジョブごとにディレクトリがありそこに保存されています。
また、「workspace」と同じ階層に「jobs」というフォルダがありますが、ここにジョブの設定情報と過去のジョブ結果が残っています。

参考記事

mavenに関する記事

29
35
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
29
35