Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Linux / Windows / Mac 以外の選択肢2 (jenkinsのbranch b...
Search
Livesense Inc.
PRO
April 21, 2014
Technology
0
68
Linux / Windows / Mac 以外の選択肢2 (jenkinsのbranch build) #TechLunch
Linux / Windows / Mac 以外の選択肢2
(jenkinsのbranch build)
2012/08/29 (水) @ Livesense TechLunch
発表者:松永 一郎
Livesense Inc.
PRO
April 21, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_総合職採用_会社説明資料
livesense
PRO
0
370
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
3.9k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
85
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.6k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
480
26新卒_総合職採用_会社説明資料
livesense
PRO
0
12k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
43k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
270
Other Decks in Technology
See All in Technology
OpenCensusと歩んだ7年間
bgpat
0
280
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
19
14k
今から間に合う re:Invent 準備グッズと現地の地図、その他ラスベガスを周る際の Tips/reinvent-preparation-guide
emiki
1
190
戦えるAIエージェントの作り方
iwiwi
17
7.7k
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
3
560
境界線が消える世界におけるQAエンジニアのキャリアの可能性を考える / Considering the Career Possibilities for QA Engineers
mii3king
2
110
AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド
zozotech
PRO
2
220
어떤 개발자가 되고 싶은가?
arawn
1
350
GCASアップデート(202508-202510)
techniczna
0
200
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
230
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.6k
SOTA競争から人間を超える画像認識へ
shinya7y
0
650
Featured
See All Featured
Navigating Team Friction
lara
190
15k
How to Ace a Technical Interview
jacobian
280
24k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
630
A better future with KSS
kneath
239
18k
Optimizing for Happiness
mojombo
379
70k
Statistics for Hackers
jakevdp
799
220k
How to Think Like a Performance Engineer
csswizardry
27
2.2k
GitHub's CSS Performance
jonrohan
1032
470k
KATA
mclloyd
PRO
32
15k
Become a Pro
speakerdeck
PRO
29
5.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Transcript
Linux / Windows / Mac 以外の選択肢 2
と思ったんですが、あまり需要が無さ げなのと、今の仕事で解消したい不便 な事があったので、そこらへんで、な にをやったのかを話したいと思いま す。
あと、画面寂しいよねとか言うの禁止 資料作る時間が取れなくて、急遽昨日でっちあげ てます。LibreOffice Impressで。 作ってる最中に一度落ちてファイルが壊れ、地獄 を見ました。
本当はhipchatのbotを作ろうかとも思ってたんだ けど、時間が足りないので、それも無し。 ちょっとだけ今回hipchat使うけど。
おーい、磯野〜、一緒にJenkinsさ んを憤死させよーずー という事で、jenkinsさんの話をします。
現在僕はほとんどlinux開発環境から出ないで開発 をやってます。
これで不便な事 • 意外とlinux開発環境が重く、local storageを 使っても1.5倍位遅い • CPUがVMに対し1個割り振られてないんで、 テスト走ると、さらに重い。 • unit
test走ってる最中にcodeを弄るのに躊躇し てしまう(重いのと、あと走ってる最中の コード変更が気持ち悪いのと) • staging(jenkins)と開発環境の違いにより、テ スト結果に差が出て、その対応の為、リリー ス branchのcommitを汚す事がある。
だったらほとんど遊んでいるjenkinsさんにやって もらえばいいじゃん。
幸い、転職会議はticket単位でbranchを切って開 発している。なので、jenkinsさんにそのbranch、 見てもらえばいいじゃん。
ちなみにjenkinsさんが何物か知らない人は、 「ある特定のbranchを監視し(含 trunkと か)、commitがあったら勝手にテストしてくれる 人」 と思って下さい。 というか、以上がCIの概念の全てです。
• 各branch毎にjenkinsの監視対象(job)を追加する のってダサいよねー。 • それに、branchのcommit毎にテストしたいわけ じゃないし。 • 僕みたいに結構細かい粒度でcommitする人もい るわけだし。 Jenkinsさんにお願いするの反対
の声をお聞き下さい。
Jenkinsさんにお願いするの賛成 の声をお聞き下さい • remote api使ってbranch指定してbuildすりゃ 良いじゃん!! • それに、裏で走るんだったら、終わった事を 通知もして欲しいよね。 •
メール? だっせーーーーーーーーーー 今だったらhipchatでしょ?
作ってみた 実演
仕組み Jenkinsにはjenkinsを作った川口さんが開発した stapler というRESTful frameworkが使われてます。 業務ロジックをannotationで外に公開する事が出 来るんですね。
そんなAPIの一つが、起動。 http://192.168.30.22:8080/job/jobtalk.jp- branch/buildWithParameters? branch=ichiro/test&hipaccount=IchiroMatsun aga&room=転職会議 branch / hipaccount / room
というパラメータを追加している。 これは、jenkins側で設定。
他、buildの結果をxmlで取得したり出来る。 Build結果のurlの後ろに/api/xml を追加すると見れ る。
あるjobの後に別のjobを自動で走らせる事が出来 る
以上により 1. buildWithParameterによりテスト起動 2. jenkinsの終了後に子jobを呼ぶ機能によ り、hipchat連携用のjobを呼ぶ 3. hipchat連携用jobは、自分のbuildのurlが渡っ て来るんで、それを利用して、自分のbuild状態 をxmlから取得する。これにより親buildのurlが分
る
4. 親buildのbuild状態をxmlから取得し、どんな パラメータで起動され、テスト結果がどうだっ たかわかる。 5. この情報を元にhipchatにメッセージを投げる こんな感じでやってる。
小技 テストを行なっているjobでは、指定された branchをテストする為に、jenkins組込みの subversion連携機能を使っていない。 ${JENKINS_HOME}/bin/co_branch.sh で、自前で info / co /
switch をしている。
色々思った事 • 今、windows上で開発している人も多い。 やっぱりwindows上のphpと本番のphpは別 物。なんで、unit test回すならlinux開発環境上 で回して欲しい。 この仕組みを使う事により、branchを中継し て、その助けが出来るんじゃないだろうか? •
周り見てると、svnの機能を使い切ってない 人、けっこういるように見える。switchとか 便利ですよ。 • gitの基本ローカルに起因する軽さはやっぱり 魅力的。ただ、仕事で使う上での履歴改変系 の事はどうしてもひっかかる。masterとか飛