改訂第3版 jenkins 実践入門 what's newから見るjenkinsのupdate
TRANSCRIPT
Yuki IwanariシステムインテグレーターのR&D部門にて、ア
ジャイル開発プラットフォームの開発
およびアジャイル開発のトレーニング、コンサル
ティング、自動化などに従事。
[改訂第3版] Jenkins実践入門(技術評論社)執
筆、Jenkinsユーザ会スタッフ、CodeZine Academy Jenkins Boot Camp(翔泳社)
講師など、Jenkinsに関連する活動に多く携わっ
ている。
出典: http://j-town.net/tottori/news/localnews/207429.html
出身
2004 Hudsonとしてスタート2008 Duke's Choice Awards2010 Sun Microsystems 買収2011 Jenkinsにフォーク
2015 Active user +100,000
2016 Jenkins 2.0 Release
2010 日本Jenkinsユーザ会発足2011 Jenkins実践入門初版発売2012 Jenkinsユーザカンファレンス
2015 Jenkinsユーザカンファレンス2015 改訂新版Jenkins実践入門
2017 改訂第3版Jenkins実践入門
JenkinsとJenkins実践入門・日本Jenkinsユーザ会の歴史
Jenkins 2.0 Pipeline as
Code
● JenkinsのビルドをDSLで記述
● Jenkinsfileという名前でバージョ
ン管理ができる
● 開発・運用チームの共通言語
● ジョブが途中で何かしらの問題で
止まっても、再開可能
● Git/GitHubのブランチが標準で
サポート
● Snipetで記述をサポート
● 従来のGUIでの設定も可能
Scripted Pipelineサンプル
Jenkinsfile (Scripted Pipeline)node {
stage('Build') {
sh 'make'
}
stage('Test') {
sh 'make check'
junit 'reports/**/*.xml'
}
stage('Deploy') {
sh 'make publish'
}
}
2016年4月にJenkins 2.0と一緒にリリースされたScripted PipelineはGroovy DSL
Groovyが記述できれば記載は容易
Declarative Pipelineに比べるとやや上級者向け
Declarative Pipelineサンプル
Jenkinsfile (Declarative Pipeline)pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test'){
steps {
sh 'make check'
junit 'reports/**/*.xml'
}
}
stage('Deploy') {
steps {
sh 'make publish'
}
}
}
}
2017年2月 GA
2016年4月にJenkins 2.0と一緒にリリースされたScripted PipelineはGroovyベースのDSLで、少し覚えるのが難しいケースがあった
宣言的に、かつブロックベースでPipelineが記述できるようになった。初心者向け
そのため書籍ではDeclarative Pipelineベースでサンプルを作成Document
“第10章 Pipelineの設定”新設
基本的なPipelineの説明から、記述方法、よく使うSnipetや、並列実行を紹介
Multi branchやShared Libraryの便利な機能も紹介
書籍の執筆スケジュール
2016/05 企画スタート
2016/06 企画書・目次Fix・改訂開始
2017/01 第一校組版
2017/02 Declarative Pipeline GA! 急いでベースラインを変更
2017/03 第二校組版・スケジュール遅延 …
2017/04 最終稿組版
2017/05 発売
Blue Ocean 2017/04 GAGUI Pipeline Editor
Pipeline Visualization
Git / GitHub Integration
Personalization
Road
map
of
Blue
Oce
an
link
書籍の執筆スケジュール
2016/05 企画スタート
2016/06 企画書・目次Fix・改訂開始
2017/01 第一校組版
2017/02 Declarative Pipeline GA! 急いでベースラインを変更
2017/03 第二校組版・スケジュール遅延 …
2017/04 Blue Ocean GA! 急いで吸収…
2017/04 最終稿組版
2017/05 発売
Blue Ocean ?Jenkinsfile ? Jenkins 1系ではGUIで設
定していて、そこを解決す
るためにPipeline ( Jekinsfile )が登場
そこへ、PipelineをGUIでも設定できるBlue Oceanが登場
Jenkinsの良いところは、
プラグインアーキテクチャ
開発チームのスタイルに
合わせてPipeline (Declarative/Scripted)、Blue Oceanを選択するの
がGood.
ぜひチームで建設的な議
論をして、ベストな答えを
小休止 おすすめプラグイン
● MaskPasswords○ 実行結果もマスクしてくれる。 最近は Credential
Bindings も多い
● TextFinder○ ログなどから文字列を検出してビルド結果を不安定
などに変更できる
● Xvfb○ xvfbを使って、xがなくてもChromeなどでSelenium
が動かせる
● Timestamper○ コンソールアウトプットにタイムスタンプを追加
● AnsiColor○ コンソールアウトプットをカラーリング
● Pipeline Multibranch Plugin○ ブランチが作成されたら、自動でジョブを作成、実
行
● Nested View / Folders○ Jobが増えてViewを整理して見たいときにÅ
Gitメインのサンプルへ
初版企画時
第2版企画時
From Eclipse Community Survey 2014
Java関連ツールのバージョンアップ
Java 8 → Java 9…にするか、悩みまくったら、見事にリリースがスリップ!
Gradle / Senelium / CheckStyle / Findbugs / JaCoCo など、バージョンアップ
Java関連ツールのバージョンアップ
Java 8 → Java 9…にするか、悩みまくったら、見事にリリースがスリップ!
Gradle / Senelium / CheckStyle / Findbugs / JaCoCo など、バージョンアップ
Maven 3.5 リリース2017/04/07!!
2度あることは3度ある
Java関連ツールのバージョンアップ
Java 8 → Java 9…にするか、悩みまくったら、見事にリリースがスリップ!
Gradle / Senelium / CheckStyle / Findbugs / JaCoCo など、バージョンアップ
Maven 3.5 リリース2017/04/07!!
2度あることは3度ある
書籍の執筆スケジュール
2016/05 企画スタート
2016/06 企画書・目次Fix・改訂開始
2017/01 第一校組版
2017/02 Declarative Pipeline GA! 急いでベースラインを変更
2017/03 第二校組版・スケジュール遅延 …
2017/04 Blue Ocean GA! 急いで吸収…
2017/04 Maven 3.5.0 GA! 急いで吸収…
2017/04 最終稿組版
2017/05 発売
Docker本家 Jenkins.io でも情報量が増えている
Dockerに関する記述を大きく追記
DockerでInstallする
Dockerをビルドエージェントにする
小ネタ:マスタースレーブという名称はビルド
エージェントに置き換えられました。
ChatOps / Hubot / Slack
チャットを通じてオペレーションする事で、以下
のメリットがある
- オペレーションをチーム内で共有
- フィードバックをより速く
- オペレーションをシンプルにし、
属人化を防止
その他、監視やCIの共有、タスク割当など、活
用の幅は無限大
なお、初版のときはSlackは存在しなかったけ
ど、今はみんなSlack大好き
ビルド結果通知
API call
メッセージ受信
@hubot Jenkins build SamplePipelineBuild Success!!
ChatOps
TFS / Backlog
Jenkinsは、メジャーなITS (Issue Tracking System)との連携が可能
改訂第3版では、新たに以下の連携を追加
- Backlog- Team Foundation Server
Redmineは初版から。
Jenkins実践入門の執筆でもbacklogでプロジェクト管理
Jenk
insの
情報を探す
Jenkinsの最新機能を知りたい
Pluginを探したい
Jenkinsfileで使えるstepを探す
バグを踏んだ?
Jenkinsの日本語情報は無いかな?
Jenkinsのイベントが知りたい
Jenkinsに関するPodcast
→ Jenkins Community blog
→ Plugins Index Renewal !!
→ Pipeline Step References
→ Jenkins Issue Tracker
→ 日本Jenkinsユーザ会
→ Tokyo Jenkins Area Meetup
→ Rebuildfm #161 川口さんゲスト