Upload
kohsuke-kawaguchi
View
2.299
Download
1
Embed Size (px)
DESCRIPTION
第三回大阪Jenkins勉強会での発表内容です。
Citation preview
©2010 CloudBees, Inc. All Rights Reserved
©2010 CloudBees, Inc. All Rights Reserved
Jenkins による検証済みマージ川口耕介
Architect, CloudBees, Inc.Lead/Creator, Jenkins project
©2010 CloudBees, Inc. All Rights Reserved
2©2010 CloudBees, Inc. All Rights Reserved
もっと Jenkins に仕事をさせよう
次に Jenkins に何をさせようか?
©2010 CloudBees, Inc. All Rights Reserved
3©2010 CloudBees, Inc. All Rights Reserved
「テストに成功したらチェックイン」業• テストは計算機を酷使する– 同時に他の作業がしづらい– 手元のラップトップはより重要な作業に使わ
れるべき• 人間が計算機を待ってはいけない– 開発者の頭はより重要な作業に使われるべき– 満足する変更をしたら、次の作業に取り掛
かりたい
©2010 CloudBees, Inc. All Rights Reserved
4©2010 CloudBees, Inc. All Rights Reserved
Fire-and- F orget
©2010 CloudBees, Inc. All Rights Reserved
5©2010 CloudBees, Inc. All Rights Reserved
理由2:大規模プロジェクト開発者は一定確率で問題チェックインをすると仮定
↓ 人数が増えるほど
コードに問題が発生している確率が高まる
0 2 4 6 8 10 12 14 16 18 200%
20%
40%
60%
80%
100%
©2010 CloudBees, Inc. All Rights Reserved
6©2010 CloudBees, Inc. All Rights Reserved
「テストに成功したらチェックイン」業の自動化
• 問題点– VCS にコミットしないとテストしてくれない– コミットに問題があると他人に迷惑がかかる– コミットする前に手元でもっとテストしなけ
れば…?– あれ?
• コミットする前にテストしたらどうだろう– 「 pre-tested commit 」
©2010 CloudBees, Inc. All Rights Reserved
7©2010 CloudBees, Inc. All Rights Reserved
蓋を開けてみると…• Diff をやりとりするのはあまり便利でな
い– 次の作業へ進む時に diff をどこに保存する ?– 同僚に見せるには ?– 手戻りが発生した時に diff を再適用 ?– ファイル属性、シンボリックリンク、リネー
ム
• こういうのをツールでサポートしないと !
©2010 CloudBees, Inc. All Rights Reserved
8©2010 CloudBees, Inc. All Rights Reserved
それって車輪の再発明?
「バージョン管理システム 」と人は呼ぶ
©2010 CloudBees, Inc. All Rights Reserved
9©2010 CloudBees, Inc. All Rights Reserved
Pre-tested commit + VCS =
• 開発者はテストしたい変更をコミットをする– 但し、 trunk や master にではなく、こっ
そりと• Jenkins はそのコミットを検査する• 検査に合格したコミットは trunk/
master に現れる
©2010 CloudBees, Inc. All Rights Reserved©2010 CloudBees, Inc. All Ri
ghts Reserved
Git の場合
©2010 CloudBees, Inc. All Rights Reserved
11©2010 CloudBees, Inc. All Rights Reserved
モデル• 開発者の仕事– 自分のブランチにコミット– 時々リベースする
• 本物のブランチと区別するために「 personal/kohsuke 」などの名前規約を使う
• Jenkins の仕事– 開発者ブランチへのプッシュを監視– 検証して上流にマージ
©2010 CloudBees, Inc. All Rights Reserved
12©2010 CloudBees, Inc. All Rights Reserved
モデル
• マージ後の結果がテストされるのが肝心
master
kohsuke
©2010 CloudBees, Inc. All Rights Reserved
デモ
©2010 CloudBees, Inc. All Rights Reserved
14©2010 CloudBees, Inc. All Rights Reserved
お勧めできる理由• 簡単にはじめられる– リポジトリは一つでよい– 一人で勝手に始められる
• みんなで使える– Jenkins のジョブも一つでよい– 同じモデルが feature branch にも使える
• 「終わりよければ全てよし」モデル
©2010 CloudBees, Inc. All Rights Reserved
15©2010 CloudBees, Inc. All Rights Reserved
Subversion は?• Svnmerge プラグインを作りました– Git 程ではないけれど、 Subversion も進化
した• Git と同じようなことが出来ます
master
feature branch
©2010 CloudBees, Inc. All Rights Reserved
16©2010 CloudBees, Inc. All Rights Reserved
注意事項• Push と rebase はセットで行われる
©2010 CloudBees, Inc. All Rights Reserved
master
feature branch
©2010 CloudBees, Inc. All Rights Reserved
デモ
©2010 CloudBees, Inc. All Rights Reserved
18©2010 CloudBees, Inc. All Rights Reserved
利点と欠点• Subversion で使える• 部品の組み合わせ方で様々なモデルに対
応
• リポジトリにコミットが増える• 履歴をトラックするのが大変に– でも昔に比べればよくなった (svn log –g)
©2010 CloudBees, Inc. All Rights Reserved
19©2010 CloudBees, Inc. All Rights Reserved
【宣伝】 Git でこれを更に一歩進めて…• Jenkins Enterprise by CloudBees– CloudBees で出しているエンタープライズ
版
• Jenkins を Git server にしちゃいました
上流リポジト
リgate repo
ssh
©2010 CloudBees, Inc. All Rights Reserved
Demo
©2010 CloudBees, Inc. All Rights Reserved
21©2010 CloudBees, Inc. All Rights Reserved
BuildHive.cloudbees.com
• タダで使えます• 使ってみて感想を送ってください
©2010 CloudBees, Inc. All Rights Reserved
22©2010 CloudBees, Inc. All Rights Reserved
結論• もっと Jenkins に仕事をさせよう• Subversion でもできる
• より詳しくは、 http://jenkins-ci.org/
©2010 CloudBees, Inc. All Rights Reserved
23©2010 CloudBees, Inc. All Rights Reserved
リンク• 日本 Jenkins ユーザー会– Aka 日本ビルド職人の集い– http://build-shokunin.org/
• メーリングリスト• 勉強会の定期的な開催
©2010 CloudBees, Inc. All Rights Reserved
Q&A