技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

速攻で Jenkins を練習する環境を用意する

目的は Jenkins を試すことのみ。
それも構築/設定をメインに試すので、なるだけ最短ルートを通る。

Jenkins インストール

今回は Jenkins のセットアップ手順を知るために、Linux にガチで入れます。
Docker コンテナもあるにはあるのですが、今回そっちには逃げません。

とはいえ、Ubuntu のインストールは今回の目的ではないので、こっちは Docker でやってしまいます。

$ docker run --name jenkins-example -it -p 8080:8080 -p 8000:80 ubuntu

Ubuntu にログインしたら

$ apt update -y
$ apt upgrade -y
$ apt install wget git gnupg openjdk-8-jdk -y
$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | apt-key add -
$ sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ apt update
$ apt install jenkins -y
$ /etc/init.d/jenkins start

そこそこ長い…
ここまで来たら、 http://localhost:8080/ を開くと

f:id:white-azalea:20190222231937p:plain

ヒャッホイ。
画面の指示にしたがってサジェストプラグインをとりあえず入れてしまう。

f:id:white-azalea:20190222232133p:plain

管理者アカウントも作成して

f:id:white-azalea:20190222232333p:plain

起動しました

f:id:white-azalea:20190222232441p:plain

ビルドプロジェクトの作成

「新規ジョブの作成」から、「フリースタイルジョブ」で適当な名前で作成します。

f:id:white-azalea:20190222232740p:plain

設定が始まりますが、上の方は表示とかメタ情報の類です。
入れたければお好みで

f:id:white-azalea:20190222232958p:plain

重要なのはリポジトリ設定以降です。
git を指定して、以下の URL を突っ込みます

https://github.com/Sunao-Yoshii/spring-boot-web-example.git

f:id:white-azalea:20190222233150p:plain

その後の設定ですが

  • ビルドトリガ
    定期的に git リポジトリを調べて、新しかったら自動実行…とかできます。
  • ビルド環境
    選択肢の通りでしょう。今回は放置します

「ビルド」の欄で、どんどん手順を追加していきます。最悪のケースでも shell を直接設定できるので、Linux の手順はだいたい設定できます。
まずは gradle コマンドを追加してしまいます「Invoke gradle script」を選択して

f:id:white-azalea:20190222233818p:plain

「test」とだけ打ってみましょうか。

f:id:white-azalea:20190222233719p:plain

そしたらプロジェクト名を別タブで開きます

f:id:white-azalea:20190222234036p:plain

サイドメニューから「ビルドを実行」とすると、リポジトリからのチェックアウト、テストが実行されます。
ちなみに「ワークスペース」を開くと、ビルド後のプロジェクトディレクトリの中身がみれます。

f:id:white-azalea:20190222234148p:plain

そしたらプロジェクトの設定に戻り、「ビルド後の処理の追加」から「JUnit 結果の集計」あたりを選びましょう。
これは JUnit の結果 XML を集計するので、フォーマットが一緒なら他の Unit 系でも使えます。

f:id:white-azalea:20190222234416p:plain

入力するディレクトリは「build/test-results/test/*.xml」で設定します。
build ディレクトリは gradle 標準のアウトプットディレクトリで、test-resulkts/test も言わずもがなですね…

f:id:white-azalea:20190222234806p:plain

再度実行して成功すると「テスト結果」の項目が出てきます。
ここでエラーになる場合は、gradle コマンドを以下の2行にして再実行してみてください。

clean
test

f:id:white-azalea:20190222235425p:plain

f:id:white-azalea:20190222235608p:plain

設定をみてみれば分かりますが、エラー時にメール通知など色々できるようになっています。
最終的にこのプロジェクトではこんな設定を行いました。

f:id:white-azalea:20190223002250p:plain

f:id:white-azalea:20190223002308p:plain

チェックスタイルの追加と、ビルド結果の保存です。
Spring の jar はそのまま実行するとサーバになるので、それでもいいですが、頑張って war にするなら、Tomcat へデプロイとか、Azure AppService へのデプロイとか色々やりようがありますね。