SlideShare a Scribd company logo
Jenkinsによる検証済みマージ
川口耕介

Architect, CloudBees, Inc.
Lead/Creator, Jenkins project



                    ©2010 CloudBees, Inc. All Rights
                              Reserved
もっとJenkinsに仕事をさせよう




    次にJenkinsに何をさせようか?




        ©2010 CloudBees, Inc. All Rights   2
                  Reserved
「テストに成功したらチェックイン」業
• テストは計算機を酷使する
 – 同時に他の作業がしづらい
 – 手元のラップトップはより重要な作業に使
   われるべき
• 人間が計算機を待ってはいけない
 – 開発者の頭はより重要な作業に使われるべ
   き
 – 満足する変更をしたら、次の作業に取り掛
   かりたい

        ©2010 CloudBees, Inc. All Rights   3
                  Reserved
Fire-and-Forget




             ©2010 CloudBees, Inc. All Rights   4
                       Reserved
理由2:大規模プロジェクト
開発者は一定確率で問題チェックインをすると仮
          定
           ↓
       人数が増えるほど
 コードに問題が発生している確率が高まる
100%
80%
60%
40%
20%
 0%
       0   5   10   15       20



                    ©2010 CloudBees, Inc. All Rights   5
                              Reserved
「テストに成功したらチェックイン」業の
自動化
• 問題点
 – VCSにコミットしないとテストしてくれな
   い
 – コミットに問題があると他人に迷惑がかか
   る
 – コミットする前に手元でもっとテストしな
   ければ…?
 – あれ?


• コミットする前にテストしたらどうだろ
  う
 – 「pre-tested commit」
              ©2010 CloudBees, Inc. All Rights
                        Reserved
                                                 6
蓋を開けてみると…
• Diffをやりとりするのはあまり便利でな
  い
 – 次の作業へ進む時にdiffをどこに保存する?
 – 同僚に見せるには?
 – 手戻りが発生した時にdiffを再適用?
 – ファイル属性、シンボリックリンク、リ
   ネーム


• こういうのをツールでサポートしないと!
         ©2010 CloudBees, Inc. All Rights   7
                   Reserved
それって車輪の再発明?



「バージョン管理システム 」と人は呼ぶ




      ©2010 CloudBees, Inc. All Rights   8
                Reserved
Pre-tested commit + VCS =
• 開発者はテストしたい変更をコミットを
  する
  – 但し、trunkやmasterにではなく、こっそり
    と
• Jenkinsはそのコミットを検査する
• 検査に合格したコミットはtrunk/master
  に現れる



             ©2010 CloudBees, Inc. All Rights   9
                       Reserved
Gitの場合




            ©2010 CloudBees, Inc. All Rights
         ©2010 CloudBees, Inc. All
                  Reserved
モデル
• 開発者の仕事
 – 自分のブランチにコミット
 – 時々リベースする
• 本物のブランチと区別するために
  「personal/kohsuke」などの名前規約を
  使う
• Jenkinsの仕事
 – 開発者ブランチへのプッシュを監視
 – 検証して上流にマージ
           ©2010 CloudBees, Inc. All Rights   11
                     Reserved
モデル



 master


 kohsuke



• マージ後の結果がテストされるのが肝心



           ©2010 CloudBees, Inc. All Rights   12
                     Reserved
デモ




     ©2010 CloudBees, Inc. All Rights
               Reserved
お勧めできる理由
• 簡単にはじめられる
 – リポジトリは一つでよい
 – 一人で勝手に始められる
• みんなで使える
 – Jenkinsのジョブも一つでよい
 – 同じモデルがfeature branchにも使える
• 「終わりよければ全てよし」モデル



          ©2010 CloudBees, Inc. All Rights   14
                    Reserved
Subversionは?
• Svnmergeプラグインを作りました
  – Git程ではないけれど、Subversionも進化し
    た
• Gitと同じようなことが出来ます


master


feature branch



                 ©2010 CloudBees, Inc. All Rights   15
                           Reserved
注意事項
      • Pushとrebaseはセットで行われる


        master


        feature branch




                            ©2010 CloudBees, Inc. All Rights
©2010 CloudBees, Inc. All             Reserved
                                                               16
デモ




     ©2010 CloudBees, Inc. All Rights
               Reserved
利点と欠点
• Subversionで使える
• 部品の組み合わせ方で様々なモデルに対
  応

• リポジトリにコミットが増える
• 履歴をトラックするのが大変に
 – でも昔に比べればよくなった(svn log –g)



          ©2010 CloudBees, Inc. All Rights   18
                    Reserved
【宣伝】Gitでこれを更に一歩進めて…
• Jenkins Enterprise by CloudBees
  – CloudBeesで出しているエンタープライズ版


• JenkinsをGit serverにしちゃいました


                                                      上流
            ssh                                      リポジト
                                                       リ
                                      gate
                                      repo

                  ©2010 CloudBees, Inc. All Rights          19
                            Reserved
©2010 CloudBees, Inc. All Rights
          Reserved
BuildHive.cloudbees.com
• タダで使えます
• 使ってみて感想を送ってください




             ©2010 CloudBees, Inc. All Rights   21
                       Reserved
結論
• もっとJenkinsに仕事をさせよう
• Subversionでもできる

• より詳しくは、http://jenkins-ci.org/




             ©2010 CloudBees, Inc. All Rights   22
                       Reserved
リンク
• 日本Jenkinsユーザー会
 – Aka 日本ビルド職人の集い
 – http://build-shokunin.org/


• メーリングリスト
• 勉強会の定期的な開催




               ©2010 CloudBees, Inc. All Rights   23
                         Reserved
Q&A




      ©2010 CloudBees, Inc. All Rights
                Reserved

More Related Content

PPTX
第六回Jenkins勉強会
PDF
ドリコムJenkins勉強会資料
PPTX
Dev@cloudの実装
PDF
Nifty cloud automationでクラウド構築・運用の自動化
PPTX
ここ最近のJenkins新機能
PPTX
グループ制作注意
PDF
ニフティクラウドを使った安定運用のススメ
PDF
bicep dev container
第六回Jenkins勉強会
ドリコムJenkins勉強会資料
Dev@cloudの実装
Nifty cloud automationでクラウド構築・運用の自動化
ここ最近のJenkins新機能
グループ制作注意
ニフティクラウドを使った安定運用のススメ
bicep dev container

What's hot (20)

PDF
Jenkinsはじめました - Yahoo! JAPANのCI+CD -
PPTX
20171028_66842_Emacs実践入門_出版記念イベント_以前Emacs使いだったVim使いがEmacsのリハビリしている様子(回想多め)
PDF
超便利! Unity Cloud Build の使い方
PDF
Unity Cloud BuildとUnity Analytics
PDF
(自分流)Gitの運用ルール
PPTX
Jenkins User Conference 東京 2015
PDF
Java-minishift-20191123
PPTX
Virtual Kubelet and Virtual Node
PDF
Bicep 入門 MySQL編
PPTX
AKS (k8s) Hands on Lab Contents
PDF
Jenkins 再入門
PDF
Git extensions ws外部公開用
PDF
GitHubで学ぶバージョン管理
PDF
バージョン管理システム比較資料
PDF
怖くないブランチ開発外部公開用
PDF
VSCode Conference Japan 2021 kyusque
KEY
一人でもはじめるGitでバージョン管理
PDF
Gitと出会って人生変わった テックヒルズ2013-03-22
PPTX
Git & GitHub & kintone でウルトラハッピー!
PDF
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
Jenkinsはじめました - Yahoo! JAPANのCI+CD -
20171028_66842_Emacs実践入門_出版記念イベント_以前Emacs使いだったVim使いがEmacsのリハビリしている様子(回想多め)
超便利! Unity Cloud Build の使い方
Unity Cloud BuildとUnity Analytics
(自分流)Gitの運用ルール
Jenkins User Conference 東京 2015
Java-minishift-20191123
Virtual Kubelet and Virtual Node
Bicep 入門 MySQL編
AKS (k8s) Hands on Lab Contents
Jenkins 再入門
Git extensions ws外部公開用
GitHubで学ぶバージョン管理
バージョン管理システム比較資料
怖くないブランチ開発外部公開用
VSCode Conference Japan 2021 kyusque
一人でもはじめるGitでバージョン管理
Gitと出会って人生変わった テックヒルズ2013-03-22
Git & GitHub & kintone でウルトラハッピー!
SIerは如何にしてGitHub Enterpriseを導入するにようになったか
Ad

Viewers also liked (6)

PDF
Jenkins勉強会
PDF
Ja sst'14東北 いまさら聞けないJenkins
PDF
Dockerイメージ構築 実践テクニック
PDF
JavaScriptの落とし穴
PDF
Jenkins 20
PDF
継続的インテグレーションの過去・現在・そして未来 〜ヌーラボの事例と共に考える〜
Jenkins勉強会
Ja sst'14東北 いまさら聞けないJenkins
Dockerイメージ構築 実践テクニック
JavaScriptの落とし穴
Jenkins 20
継続的インテグレーションの過去・現在・そして未来 〜ヌーラボの事例と共に考える〜
Ad

Similar to Jenkins+Gitによる検証済みマージ(30分版) (20)

PPTX
Developer summit continuous deliveryとjenkins
PPTX
Jenkins 2.0 (日本語)
PDF
CIBC workshop by imagire
PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
PPTX
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
PPTX
継続的インテグレーション3分クッキング
PDF
恋するJenkins
PDF
Jenkinsstudy#4kokawa
PDF
Jenkins実践入門目次チラ見せしちゃいます
PPTX
CIのもたらす世界
PDF
Javaユーザに贈るJenkins 25のTips
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
ドリコムを支える課金ライブラリを支えるJenkins
PDF
RedmineとGitとスクラム
PDF
Jenkinsについて
PPTX
20140605_じどうかの窓口_CloudBees_Jenkins
PDF
Jenkinsで始める継続的デリバリーと実践の道程
PDF
SVNのすすめ&Redmineでプロジェクト管理
KEY
20120324 git training
PDF
AWS Black Belt Online Seminar AWS上のJenkins活用方法
Developer summit continuous deliveryとjenkins
Jenkins 2.0 (日本語)
CIBC workshop by imagire
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
継続的インテグレーション3分クッキング
恋するJenkins
Jenkinsstudy#4kokawa
Jenkins実践入門目次チラ見せしちゃいます
CIのもたらす世界
Javaユーザに贈るJenkins 25のTips
はてなにおける継続的デプロイメントの現状と Docker の導入
ドリコムを支える課金ライブラリを支えるJenkins
RedmineとGitとスクラム
Jenkinsについて
20140605_じどうかの窓口_CloudBees_Jenkins
Jenkinsで始める継続的デリバリーと実践の道程
SVNのすすめ&Redmineでプロジェクト管理
20120324 git training
AWS Black Belt Online Seminar AWS上のJenkins活用方法

More from Kohsuke Kawaguchi (19)

PPTX
Workflow, container, and beyond
PPTX
JavaOne 2014: Next Step in Automation: Elastic Build Environment
PPTX
On sharing ideas & sharing code
PPTX
コードの互換性と進化の両立
PPTX
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
PPTX
Jenkins User Conference 2013 Palo Alto: Keynote
PPTX
Jenkins State of union 2013
PPTX
How we made jenkins community
PPTX
Large scale automation with jenkins
PPTX
Jenkins User Conference 2012 San Francisco
PPTX
Jenkins user conference 東京
PPTX
Creating a Developer Community
PPTX
Jenkins user conference 2011
PPTX
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
PPTX
Current state of Jenkins
PPTX
Jenkins勉強会第二回
PPTX
Jenkins と groovy
ODP
ホット・トピック・セミナー「Metro」
ODP
Hudson (JJUG CCCにて)
Workflow, container, and beyond
JavaOne 2014: Next Step in Automation: Elastic Build Environment
On sharing ideas & sharing code
コードの互換性と進化の両立
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
Jenkins User Conference 2013 Palo Alto: Keynote
Jenkins State of union 2013
How we made jenkins community
Large scale automation with jenkins
Jenkins User Conference 2012 San Francisco
Jenkins user conference 東京
Creating a Developer Community
Jenkins user conference 2011
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
Current state of Jenkins
Jenkins勉強会第二回
Jenkins と groovy
ホット・トピック・セミナー「Metro」
Hudson (JJUG CCCにて)

Jenkins+Gitによる検証済みマージ(30分版)

Editor's Notes

  • #21: The ui-changes branchBuildHive