SlideShare a Scribd company logo
1 of 17
Download to read offline
jenkins先生にライブラリの
  更新をお願いする
    - 天下一.gitconfig大会 -



      2012/11/20
       田中 裕一
今日は

● 最近、継続的デリバリー本に洗
  脳されました。

● git+github+jenkins+maven
  でライブラリ更新が捗るネタやり
  ます。

● .gitconfigは関係ないです。
ライブラリのアップデートやってる?

思い出したタイミングでやると結構溜まってきちゃっ
てアップデートの確認も大変です。
kintoneでは

● javaのライブラリはmavenで管理。

● 自社開発ライブラリも社内にnexusサーバー立て
  て管理。

● 自社開発ライブラリは更新されたら、口頭でやり
  取りして更新(でも忘れることもしばしば。。)
 ○ 常に追随しないとデプロイ失敗することも。。

● それ以外は、気が向いたら更新。大体数ヶ月に1
  回の印象。
頻繁にやった方が良いよね

じゃあ、普段からチェックする?
そんなのすぐに忘れちゃいます。
というわけで、

jenkins先生にお願いすることにしました。
全体の仕組み

           ① 更新を確認

                  ② 更新があればpom.xmlを更新
                  して、ブランチ切ってpush
   ③ ビルド
   (テスト含む)


  ④ 作ったブランチのpull request
  を作成
                人間はpull requestを
                確認するだけ!!
各ステップでやること
① pom.xmlの更新

maven versionsプラグインを使えば一発でpom.
xmlの更新までやってくれる。
http://mojo.codehaus.org/versions-maven-plugin/
② ブランチを作成してpush

これは普通にjenkins先生がシェルで実行する。
③ ビルド

以前より、githubにpushするとjenkins先生がビルド
実行する設定にしているのでここは割愛。
④ pull requestの作成

github APIで一発 = curlコマンドで一発
demo
jenkinsを実行すると、こんな感じのpull requestを
作ってくれます。
テスト成功していれば、ボタンを押すだけでマージ
完了!
まとめ

● 普段から頻繁にライブラリをアップデートしてお
  けば、差分が小さいから失敗しても原因の探求
  が追いやすいはず。

● 変更をpushしたら都度テストを実行するのがキモ
 ○ これがなければ怖くて更新できない

● pull requestを勝手に作って作る所までは全
  自動で最後の判断/修正は人間がやる。
元ネタ

● 社内の継続的デリバリー勉強会での議論

● http://blog.kyanny.
  me/entry/2012/11/06/003902
[追記] 当日のQ&A

● ビルドに失敗した時のワークフローは?

 ○ 失敗内容を確認して、kintoneに改修を入れる。

 ○ もしくは、あるライブラリに関してはもう今後アップデート
   は行わないものとして、更新の対象から外す(versionsプ
   ラグインのexcludesオプションで指定可能)。
[追記] 当日のQ&A

● 一度に複数のライブラリを更新するのではなく、
  一度には一つしか更新しないようにはできな
  い?

 ○ versionsプラグインではできないようなので、頻繁に確
   認するしかないかも?

More Related Content

What's hot

5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門Kenta USAMI
 
バイオシェル芸 問題のみ
バイオシェル芸 問題のみバイオシェル芸 問題のみ
バイオシェル芸 問題のみEmi Hattori
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理Masafumi Yokoyama
 
料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築
料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築
料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築Maki Koiwa
 
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜Keisuke Utsumi
 
ざんねんなワークフロー図鑑
ざんねんなワークフロー図鑑ざんねんなワークフロー図鑑
ざんねんなワークフロー図鑑Seiya Noguchi
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 
俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)Masayuki KaToH
 
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!Naoto Ishizawa
 
Btrfsで壊してもいい環境づくり
Btrfsで壊してもいい環境づくりBtrfsで壊してもいい環境づくり
Btrfsで壊してもいい環境づくりjo7oem
 
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生Yuusuke Takeuchi
 
チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用Keisuke Utsumi
 
最近流行りのビルドツールとは
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとはTakahiro Maki
 
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8ltれれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8ltJunpei Matsuda
 
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみるMilkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみるMasaki Yamamoto
 
春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03
春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03
春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03Takeshi Komiya
 
プログラマのためのPC自動化
プログラマのためのPC自動化プログラマのためのPC自動化
プログラマのためのPC自動化高見 知英
 

What's hot (20)

5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門
 
バイオシェル芸 問題のみ
バイオシェル芸 問題のみバイオシェル芸 問題のみ
バイオシェル芸 問題のみ
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
 
料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築
料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築
料理人になれなかったphperへ贈る Vagrantとあんしぼぉ(Ansible)で 開発環境構築
 
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
 
ざんねんなワークフロー図鑑
ざんねんなワークフロー図鑑ざんねんなワークフロー図鑑
ざんねんなワークフロー図鑑
 
Git紹介
Git紹介Git紹介
Git紹介
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)俺とGitHub(先行公開ver.)
俺とGitHub(先行公開ver.)
 
Git勉強会
Git勉強会Git勉強会
Git勉強会
 
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!
 
Btrfsで壊してもいい環境づくり
Btrfsで壊してもいい環境づくりBtrfsで壊してもいい環境づくり
Btrfsで壊してもいい環境づくり
 
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生
 
チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用
 
最近流行りのビルドツールとは
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとは
 
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8ltれれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8lt
 
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみるMilkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみる
 
春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03
春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03
春を先取り!OpsWorksとChef ではじめる恋色コーデ術! #pyfes 2013.03
 
プログラマのためのPC自動化
プログラマのためのPC自動化プログラマのためのPC自動化
プログラマのためのPC自動化
 
OSC 2011 KeySnail
OSC 2011 KeySnailOSC 2011 KeySnail
OSC 2011 KeySnail
 

jenkins先生にライブラリの更新をお願いする