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
57
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.
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
770
26新卒_総合職採用_会社説明資料
livesense
PRO
0
1.5k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
8.8k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
5k
中途セールス職_会社説明資料
livesense
PRO
0
140
EM候補者向け転職会議説明資料
livesense
PRO
0
58
コロナで失われたノベルティ作成ノウハウを復活させた話
livesense
PRO
0
180
転職会議でGPT-3を活用した企業口コミ要約機能をリリースした話
livesense
PRO
0
1.2k
株式会社リブセンス マッハバイト_プレイブック
livesense
PRO
0
720
Other Decks in Technology
See All in Technology
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
110
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
110
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
180
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
270
Storybook との上手な向き合い方を考える
re_taro
5
1.4k
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
電話を切らさない技術 電話自動応答サービスを支える フロントエンド
barometrica
1
120
CDCL による厳密解法を採用した MILP ソルバー
imai448
3
190
Platform Engineering for Software Developers and Architects
syntasso
1
530
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5k
Done Done
chrislema
181
16k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Fireside Chat
paigeccino
34
3k
The Language of Interfaces
destraynor
154
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Into the Great Unknown - MozCon
thekraken
32
1.5k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
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とか飛