Jenkinsでビルドのパイプラインを作るぞー!(2016年2月版)

と思って色々見て回った。

とか、色々。

Pipeline Plugin (旧Workflow Plugin) が良さそう

Pipeline Plugin - Jenkins - Jenkins Wiki

Build Pipeline Pluginとか、Delivery Pipeline Pluginとかがあるんだけど、Pipeline Pluginが良さそうに思った。なんとなく。なので使ってみる。以前はWorkflow Pluginって名前だったみたいね。

細かい使い方はまた別の機会に勉強するとして、今日はとりあえず適当に動かしてみよう!

動作確認用のJenkinsを起動

最近Dockerはじめたので、Docker上にJenkinsのMaster-Slaveを立てることにする。Dockerであることは今回の記事では重要ではない。

太田さんの記事を参考にしてblacklabelopsのJenkinsイメージを使った。

Docker ComposeでJenkinsとSelenium Gridを一気に立ち上げる - Qiita

$ curl -O https://raw.githubusercontent.com/blacklabelops/jenkins/master/docker-compose.yml
$ curl -O https://raw.githubusercontent.com/blacklabelops/jenkins/master/jenkins-master.env
$ curl -O https://raw.githubusercontent.com/blacklabelops/jenkins/master/jenkins-slave.env
$ docker-compose up -d

Jenkins ver. 1.649が立ち上がった。"swarm"ってラベルのSlave付き。楽ちんだのぅ。

f:id:bufferings:20160224230322p:plain

余談だけど、これDockerのSwarmと関係あるのかなーって思ってたら全然関係なくて、Jenkins Swarm Pluginだった。
Swarm Plugin - Jenkins - Jenkins Wiki

Pipeline Pluginをインストール

色々あるけど「Pipeline (formerly known as Workflow)」を入れておけばあとは勝手に入りそう。

f:id:bufferings:20160224222550p:plain

と思ったら「Git Plugin」は自分で選択しておかないといけなさそう。

f:id:bufferings:20160224230534p:plain

インストールして再起動。

ジョブを作成

Pipelineを選んで

f:id:bufferings:20160224223447p:plain

プルダウンから「Github + Maven」を選ぶ

f:id:bufferings:20160224223539p:plain

そしたらこんなコードが表示される

node {
   // Mark the code checkout 'stage'....
   stage 'Checkout'

   // Get some code from a GitHub repository
   git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'

   // Get the maven tool.
   // ** NOTE: This 'M3' maven tool must be configured
   // **       in the global configuration.           
   def mvnHome = tool 'M3'

   // Mark the code build 'stage'....
   stage 'Build'
   // Run the maven build
   sh "${mvnHome}/bin/mvn clean install"
}

今回のJenkins SlaveはMavenにパスが通ってるので、M3の部分は不要。だから、こうかな。

node {
   // Mark the code checkout 'stage'....
   stage 'Checkout'

   // Get some code from a GitHub repository
   git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'

   // Mark the code build 'stage'....
   stage 'Build'
   // Run the maven build
   sh "mvn clean install"
}

おもむろに保存してビルド実行!

結果を見る

(∩´∀`)∩ワーイ実行できたー!で、ジョブの「Pipeline Steps」で結果が見える。テストが成功したり失敗したりするようになってるサンプルなので、赤いけど気にせず。

f:id:bufferings:20160224231154p:plain

でも、これ、やっぱりBuild Pipeline Pluginみたいにグラフィカルに見たいなー。

Stage View Plugin

ってことで調べてたら、Pipeline Pluginには、Stage ViewっていうViewプラグインがあるみたい。これを使いたい!って思ったんだけど、ここを見ると

CloudBees Jenkins Platform | CloudBees

「Pipeline performance insights with Workflow Stage View」はEnterprise版だけの提供っぽい。あー、そうなのかーって思ってたら。これを発見。

[JENKINS-31154] 2.0: provide better workflow visualization out of the box - Jenkins JIRA

二日前のコメントで「The GitHub repo now contains the source code: https://github.com/jenkinsci/pipeline-stage-view-plugin 」ってある。

タイムリーすぎるやないかい!ってことでやってみよう。

Stage View Pluginをインストール

Stage ViewプラグインはまだAlpha版なのでExperimental Pluginsから取ってくる設定を。

Jenkinsの管理 > プラグインの管理 > タブ: 高度な設定

f:id:bufferings:20160224210848p:plain

一番下のアップデートサイトに
http://updates.jenkins-ci.org/experimental/update-center.json
を入力して「更新」。

f:id:bufferings:20160224211152p:plain

一度、プラグインの管理から「更新」でプラグインのリストを更新する。

f:id:bufferings:20160224211953p:plain

んで、「利用可能」タブから「Pipeline: Stage View Plugin」を選択してインストールして再起動。

f:id:bufferings:20160224212103p:plain

( ✧Д✧) うぉーーー!!!

再起動後にもう一度さっきのジョブ画面をみたら、Stage Viewが見えてるー!!

f:id:bufferings:20160224232356p:plain

というわけで、しばらくこれ触ってみようかな。

f:id:bufferings:20160224232746p:plain