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新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
2.4k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
51
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.5k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
440
26新卒_総合職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
37k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
260
EM候補者向け転職会議説明資料
livesense
PRO
0
130
Other Decks in Technology
See All in Technology
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
190
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
330
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.4k
S3アクセス制御の設計ポイント
tommy0124
2
190
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
300
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3k
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
320
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
190
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.5k
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
130
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Code Review Best Practice
trishagee
70
19k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building an army of robots
kneath
306
46k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
Speed Design
sergeychernyshev
32
1.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The World Runs on Bad Software
bkeepers
PRO
70
11k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.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とか飛