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 build) #TechLunch
Search
Livesense Inc.
PRO
April 21, 2014
Technology
0
47
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.
EM候補者向け転職会議説明資料
livesense
PRO
0
6
コロナで失われたノベルティ作成ノウハウを復活させた話
livesense
PRO
0
73
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
360
転職会議でGPT-3を活用した企業口コミ要約機能をリリースした話
livesense
PRO
0
1k
株式会社リブセンス マッハバイト_プレイブック
livesense
PRO
0
410
Tech Award 2021 選出方法
livesense
PRO
0
1k
株式会社リブセンス エンジニアリング組織を支える風土と制度
livesense
PRO
0
530
株式会社リブセンス・マッハバイト 採用候補者様向け資料
livesense
PRO
0
210
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
2k
Other Decks in Technology
See All in Technology
いつか使うかも貯金してたらめちゃめちゃ機能が増えてた話
riyaamemiya
0
120
Building Dashboards as a Hobby
egmc
0
120
アクセス制御にまつわる改善 / Improving access control
itkq
0
530
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
890
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
1
220
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
私が trocco を推す理由
__allllllllez__
1
220
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
2
380
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
510
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
120
反実仮想機械学習とは何か
usaito
PRO
11
4.6k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
The Cult of Friendly URLs
andyhume
74
5.7k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
What's new in Ruby 2.0
geeforr
337
31k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
25
2.3k
Become a Pro
speakerdeck
PRO
11
4.5k
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とか飛