改訂第3版 jenkins 実践入門 what's newから見るjenkinsのupdate

31
改訂第3Jenkins 実践入門 What’s newから 見るJenkins Update 2017/7/7 Yuki Iwanari Masanori Satoh

Upload: yuki-iwanari

Post on 22-Jan-2018

1.432 views

Category:

Technology


0 download

TRANSCRIPT

改訂第3版 Jenkins 実践入門 What’s newから見るJenkins Update2017/7/7Yuki IwanariMasanori Satoh

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の移り変わり

2016年4月リリース

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

Pipeline Stage View

“第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

書籍の執筆スケジュール

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を整理して見たいときにÅ

Job設定画面の改善

Jenkins認定試験英語のみ

Jenkins周辺ツールの移り変わり

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 発売

Java以外の各種ツールの追加

要望が多かった、PythonやRubyなどの他の言語の静的解析や

テストツールの紹介を追記

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 川口さんゲスト

まとめ

初版の発売から足掛け7年、色々と変わりました。

SubversionからGitへ、みんな大好きGitHub / Slack. Ant / Maven / Gradleなどなど。

ページ数も320ページから+400ページへ!

Jenkins実践入門でできるだけ多くのツールを紹介しているのは、自

分たちにあったツールをうまく組み合わせて、自分たちなりのベストな

スタイルを見出してほしいからです。

そのため1章はツールの基本となる”考え方”にフォーカスした説明を

しています。