SlideShare a Scribd company logo
1
超簡単Pipeline講座
2016/08/10 第9回Jenkins勉強会
玉川紘子/@nkns165
2
 自己紹介
 Pipeline概説
 Jenkins2.0のPipeline入門
 ※本当に入門しか喋りません。
AGENDA
3
 自己紹介
 Pipeline概説
 Jenkins2.0のPipeline入門
 ※本当に入門しか喋りません。
AGENDA
4
自己紹介
名前:玉川 紘子(@nkns165)
所属:株式会社SHIFT ソフトウェアテスト事業本部
技術開発部
コミュニティ:STAR(テスト自動化研究会)
日本Jenkinsユーザ会
5
CI・自動テストなんでも屋さんとして活動中
メイン業務はCI・自動テストに関するなんでもサポート屋
Jenkinsに関するセミナー、書籍のお手伝いなども
 運用方針の提案
 実際に稼働するCI環境の構築
 テストの書き方指南
Jenkinsってどうやって
使えばいいんだっけ?
Seleniumで
テストを書いてみたい
んだけど…
6
資格も取ってみました。
 2016年5月より運用開始
 プロメトリックのテストセンターで東京でも受験可能
 ただし、受験指示から問題・回答まですべて英語
7
 自己紹介
 Pipeline概説
 Jenkins2.0のPipeline入門
 ※本当に入門しか喋りません。
AGENDA
8
 こういうのとか
 こういうのとか
Jenkinsで「何らかのワークフロー」
を書きたいという欲求
Pipeline概説
成功したときだけ
次に行きます
成果物やパラメタを
次のジョブに渡します
9
「GUIで気軽に設定できるのがJenkinsの魅力!」
だけど…?
そのためのプラグインたち
Pipeline概説
Join PluginParameterized Trigger Plugin
Build Pipeline Plugin
Promoted Builds Plugin
…
10
いちいちGUIで設定するの面倒くさい
(> <)
11
そこでPipeline
Pipeline概説
 Pipeline Plugin
 Groovyのスクリプトでワークフローを記述可能
 Jenkins2.0から公式に押され始めたワークフロー管理系のデファクト
 2014年末頃に「Workflow Plugin」としてリリース
 ワークフローの可視化機能は有償
 2016年1月から「Pipeline Plugin」に改名、2月に可視化機能がOSS化
12
Pipeline Plugin(=Pipeline as Code)
を使うメリット
Pipeline概説
 保守性の高さ
 テキストファイルでスクリプトを記述 ⇒ 読みやすい!
 バージョン管理 ⇒ 変更を把握し、意図をつかみやすい!
 対応範囲の広さ
 Groovyスクリプトという1つの形式で様々なワークフローを記述可
能
⇒ いろんなプラグイン覚えなくていい!
 可読性の高さ
 内部関数の定義も可能 ⇒ 大規模化しても大丈夫!
 安全性
 Jenkinsを再起動してもresume(できる内容に制限はある)
13
 自己紹介
 Pipeline概説
 Jenkins2.0のPipeline入門
 ※本当に入門しか喋りません。
AGENDA
14
 新規ジョブ作成で「Pipeline」を選択
 実行したい内容をGroovyのスクリプトとして記述
Pipelineの作成方法
Jenkins2.0のPipeline入門
Pipelineの内容
(ここでは、サンプ
ルとして用意されて
いる文字列出力のみ
の簡単なもの)
記法を覚えていなく
ても簡単にスクリプ
トを生成するための
機能
(次頁)
15
 「Sample Step」から機能を選択
 機能に合わせたパラメタを設定
 「Generate Groovy」で生成されたスクリプトを貼り付ける
Pipeline Syntax
Jenkins2.0のPipeline入門
ジョブのビルド以外にも文字列出力、
ソースコード取得、メール等様々
これを前頁の
エディタに貼り付ける
ジョブのビルドではジョ
ブ名、失敗したときに停
止するかどうか等を設定。
パラメタもジョブに合わ
せたものが表示される
16
 いつまでも設定画面にスクリプトを書いておくのは保守性・可読性の面か
らBad Practice
 Jenkinsfileにまとめてバージョン管理する
Jenkinsfile
Jenkins2.0のPipeline入門
PathはJenkinsfileがデフォルトだが
他の名前でもOK
17
 Pipelineの中身
 ビルド・単体テスト⇒結合テスト⇒デプロイ の順で行う
 途中で失敗したら次へは進まない
 現在ジョブの中で書かれているようなビルド手順もPipeline Scriptに記載
する(ジョブを呼び出さない)手もある
 どちらを使うかは目的次第
 既存のジョブの中にワークフローっぽい設定が沢山あるなら置き換え
よう
単純にジョブを並べて呼び出すPipelineの例
Jenkins2.0のPipeline入門
stage 'Build & UnitTest'
build ’Build_UnitTest'
stage 'IntegrationTest'
build job: ’IntegrationTest', parameters: [[$class: 'StringParameterValue', name:
'BROWSER_NAME', value: 'htmlunit']]
stage 'Deploy'
build ’Deploy'
18
 GitHubにあるチュートリアルがお勧め
 https://github.com/jenkinsci/pipeline-
plugin/blob/master/TUTORIAL.md
 実践で使えるコマンド
手始めに勉強すると良いものたち
Jenkins2.0のPipeline入門
コマンド 内容
git Gitリポジトリからソースコードを取得
mail メール通知
input ユーザによる承認を待つ
parallel ジョブを並列実行(fork/joinができる)
retry ジョブが失敗した場合にリトライ
archive 成果物の保存
step([$class:
XXX…
任意のビルド手順を実行できる
JUnitResultArchiver(Junit結果の出力)、
CopyArtifact(成果物のコピー)等をよく使う
19
① 途中で手動操作を挟む自動テスト
 メール本文に書かれているURLをクリックすると先に進めるためのリンクが表
示されたコンソールを開くことができる
これまでに作ったPipelineの例
Jenkins2.0のPipeline入門
// 自動テスト
build ’AutomatedSeleniumTestBeforeOperation’
// メールを出して手動操作待ち
mail (to: ’jenkins@example.com',
subject: "Job 'AutomatedSeleniumTestBeforeOperation'
(${env.BUILD_NUMBER}) is waiting for input",
body: "Please complete your manual operation and go to
${env.BUILD_URL}/console/.");
input 'Ready to go?’;
// 自動テスト続き
build ‘AutomatedSeleniumTestAfterOperation’
20
② データ作成のためにひたすら処理を繰り返すスクリプト
 「FirstOperationが終わったらSecondOperationを実施する」という内容を
指定回数だけ繰り返す
これまでに作ったPipelineの例
Jenkins2.0のPipeline入門
for (int i = min; i < max; i ++) {
tasks[”${i}"] = {
try {
build job: ’FirstOperation',
parameters: [[$class: 'StringParameterValue',
name: ’param', value: ”${i}”]]
build job: ’SecondOperation’,
parameters: [[$class: 'StringParameterValue',
name: 'param', value: ”${i}”]]
} catch (e) {
failure = true
}
}
}
}
21
ご清聴ありがとうございました!!

More Related Content

PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
ML2/OVN アーキテクチャ概観
PDF
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
PDF
Topology Managerについて / Kubernetes Meetup Tokyo 50
PDF
12 分くらいで知るLuaVM
PDF
Jenkins 再入門
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
PDF
Javaのログ出力: 道具と考え方
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ML2/OVN アーキテクチャ概観
“見てわかる” ファイバーチャネルSAN基礎講座(第2弾)~FC SAN設計における勘所とは?~
Topology Managerについて / Kubernetes Meetup Tokyo 50
12 分くらいで知るLuaVM
Jenkins 再入門
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Javaのログ出力: 道具と考え方

What's hot (20)

PDF
Keycloak拡張入門
PDF
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
PDF
試して覚えるPacemaker入門 『リソース設定編』
PDF
KeycloakのDevice Flow、CIBAについて
PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
品質とは何か.pdf
PDF
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
PDF
XSS再入門
PDF
MagicOnion入門
KEY
やはりお前らのMVCは間違っている
PDF
Nutanix Community Edition 技術解説
PDF
How to run P4 BMv2
PDF
Linux女子部 iptables復習編
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
PDF
PG-REXで学ぶPacemaker運用の実例
PDF
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
PDF
ネットワークエンジニアはどこでウデマエをみがくのか?
PPTX
SageMakerを使った異常検知
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Keycloak拡張入門
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
試して覚えるPacemaker入門 『リソース設定編』
KeycloakのDevice Flow、CIBAについて
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
品質とは何か.pdf
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
XSS再入門
MagicOnion入門
やはりお前らのMVCは間違っている
Nutanix Community Edition 技術解説
How to run P4 BMv2
Linux女子部 iptables復習編
【Unite Tokyo 2019】Understanding C# Struct All Things
PG-REXで学ぶPacemaker運用の実例
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
ネットワークエンジニアはどこでウデマエをみがくのか?
SageMakerを使った異常検知
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Ad

Viewers also liked (20)

PDF
AWS Black Belt Online Seminar AWS上のJenkins活用方法
PDF
Jenkins 2.0 Pipeline & Blue Ocean
PDF
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
PDF
Startup jenkins!
PDF
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
PDF
スクラムにおける事前期待のマネジメント - Customer Expectations Management of Scrum #sgt2016
PDF
書類作成環境のあるべき論とは
PDF
モックアップ共有のススメ
PDF
自動化パタンランゲージ
PDF
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
PDF
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
PDF
Shibuyatrac#13 scurmでやってみた
PDF
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
PDF
Jenkins User Conference 2012 Tokyo 「SIerのJenkins事情」
PDF
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
PDF
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
PDF
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
PDF
邪道Jenkins
PDF
Jenkinsを導入する本当の理由を考えてみた
PDF
Jenkinsではじめる継続的インテグレーション
AWS Black Belt Online Seminar AWS上のJenkins活用方法
Jenkins 2.0 Pipeline & Blue Ocean
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
Startup jenkins!
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
スクラムにおける事前期待のマネジメント - Customer Expectations Management of Scrum #sgt2016
書類作成環境のあるべき論とは
モックアップ共有のススメ
自動化パタンランゲージ
よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA
自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜
Shibuyatrac#13 scurmでやってみた
「実録!となりのJenkins2.0」 - 第7回大阪 / 第9回(東京)Jenkins勉強会 #jenkinsstudy
Jenkins User Conference 2012 Tokyo 「SIerのJenkins事情」
「むしゃくしゃしたのでOpenDocumentで帳票テンプレート」 - 第13回関西LibreOffice勉強会 #LibOKansai
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
しゃべれて回れる「小人の執事さん」ったら地獄耳でもあるみたいですよ?(前編)
邪道Jenkins
Jenkinsを導入する本当の理由を考えてみた
Jenkinsではじめる継続的インテグレーション
Ad

Similar to 第9回Jenkins勉強会 超簡単Pipeline講座 (20)

PDF
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
PPTX
Multibranch Pipeline with Docker 入門編
PDF
第10回大阪Jenkins勉強会 LT 続・認定Jenkinsエンジニア試験について調べてみた #jenkinsstudy
PPTX
Jenkins 2.0 (日本語)
PPTX
xUnitハンズオン第4回テキスト
PDF
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
PDF
Jenkinsstudy#4kokawa
PDF
Jenkins実践入門目次チラ見せしちゃいます
PPTX
初めての自動化、Jenkins
PDF
自ら肥え太る執事を現場に入れてみた
PPTX
Jenkins と groovy
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
PDF
JUC2012
PDF
jenkinsで遊ぶ
PPTX
CIのもたらす世界
PDF
Jenkinsについて
PPTX
入門!Jenkins
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
PDF
JenkinsとSeleniumの活用事例
PDF
Jenkinsからはじめた若者のための新ツール一歩目
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Multibranch Pipeline with Docker 入門編
第10回大阪Jenkins勉強会 LT 続・認定Jenkinsエンジニア試験について調べてみた #jenkinsstudy
Jenkins 2.0 (日本語)
xUnitハンズオン第4回テキスト
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
Jenkinsstudy#4kokawa
Jenkins実践入門目次チラ見せしちゃいます
初めての自動化、Jenkins
自ら肥え太る執事を現場に入れてみた
Jenkins と groovy
Jenkins x Kubernetesが簡単だと思ったら大変だった話
JUC2012
jenkinsで遊ぶ
CIのもたらす世界
Jenkinsについて
入門!Jenkins
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
JenkinsとSeleniumの活用事例
Jenkinsからはじめた若者のための新ツール一歩目

第9回Jenkins勉強会 超簡単Pipeline講座