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
How to develop Jenkins plugin using to ruby and...
Search
SHIBATA Hiroshi
July 29, 2012
Technology
3
3k
How to develop Jenkins plugin using to ruby and Jenkins.rb
SHIBATA Hiroshi
July 29, 2012
Tweet
Share
More Decks by SHIBATA Hiroshi
See All by SHIBATA Hiroshi
How to make faster release cycle of Ruby?
hsbt
2
5.4k
Ruby の開発を支えるエコシステム
hsbt
4
2.2k
Why is building the Ruby environment hard?
hsbt
6
7.1k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.3k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
510
Development Environment 2019
hsbt
1
320
How to become the Psychic
hsbt
0
1.9k
Software Development
hsbt
1
6.4k
Other Decks in Technology
See All in Technology
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.5k
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
450
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
130
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
320
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.2k
JavaにおけるNull非許容性
skrb
2
2.6k
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
320
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
150
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
350
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
700
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
160
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
A designer walks into a library…
pauljervisheath
205
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
510
Building Your Own Lightsaber
phodgson
104
6.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Transcript
ࣲాതࢤ SHIBATA Hiroshi QBQFSCPZDP BTBLVTBSC paperboy&co., Inc. How to develop
Jenkins plugin using to ruby and Jenkins.rb ൃදॴ+FOLJOT6TFS$POGFSFODF 2012-07-29(Sun) KFOLJOTSCͰ࢝ΊΔ 3VCZͰ+FOLJOT ϓϥάΠϯ࡞
+FOLJOT6TFS $POGFSFODF5PLZP ։࠵͓ΊͰͱ͏͍͟͝·͢ɻ
εϙϯαʔͷ͝հ
ࣗݾհ
SHIBATA Hiroshi
http://twitter.com/hsbt/ http://www.hsbt.org/ http://github.com/hsbt/
None
None
ձࣾհ ```
None
ࣄ༰
ٕज़ج൫ උ ΤϯδχΞ
None
None
ձࣾհ ऴΘΓ
None
๛ͳϓϥάΠϯ
ࣗͰϓ ϥάΠϯͳ Β࡞Εͦ͏ ͳؾ͕͢Δ
None
+BWB
KFOLJOTSC
1.KBWBSVOUJNF 4.SVCZUPPMTKQJ 3.SVCZUPPMTDMJ 2.SVCZSVOUJNF
KBWBSVOUJNF SVCZSVOUJNF +FOLJOTʹ+3VCZΛ ΈࠐΉ +FOLJOTͷ+BWBΫϥε Λ+3VCZͰϥούʔ͢Δ
SVCZUPPMTDMJ SVCZUPPMTKQJ KFOLJOTΛૢ࡞͢Δౕ ࠓͳ͢͜ͱ
KQJSC
SCFOWJOTUBMMKSVCZ SCFOWTIFMMKSVCZ HFNJOTUBMMKQJ
$PNNBOET KQJIFMQ<$0.."/%> KQJOFX/".& KQJHFOFSBUF<PQUJPOT><BSHVNFOUT> KQJCVJME KQJTFSWFS KQJSFMFBTF KQJWFSTJPO
KQJ IFMQ KQJ WFSTJPO
লུ
KQJ OFX
KQJOFXSCFOW DSFBUFSCFOW(FNpMF DSFBUFSCFOWKFOLJOT SCFOWQMVHJOTQFD
TPVSDFSVCZHFNT HFNKFOLJOTQMVHJOSVOUJNF d Gemfile
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOc QMVHJOOBNFKFOLJOTSCFOW QMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJO QMVHJOWFSTJPO QMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPO IFSF QMVHJOVSMIUUQTXJLJKFOLJOTDJPSH EJTQMBZ+&/,*/4+FOLJOT 3CFOW 1MVHJO
QMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPN QMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOT SCFOWQMVHJO QMVHJOEFQFOET@POSVCZSVOUJNF FOE jenkins-rbenv.pluginspec
KQJ HFOFSBUF
"WBJMBCMF(FOFSBUPST QVCMJTIFS CVJMEFS XSBQQFS OPEF@QSPQFSUZ SVO@MJTUFOFS DPNQVUFS@MJTUFOFS
1.QVCMJTIFS 3.XSBQQFS 2.CVJMEFS ϏϧυޙʹԿ͔Δ Ϗϧυͱͯ͠Կ͔Δ ϏϧυલޙʹॲཧΛڬΉ
4.OPEF@QSPQFSUZ 6.DPNQVUFS@MJTUFOFS 5.SVO@MJTUFOFS jenkins ͷ node ઃఆ ϏϧυͷྃΛड͚औͬ ͯԿ͔Δ εςʔλε͕มΘͬͨ࣌
ʹԿ͔Δ
XSBQQFS Λ࡞ͬͯΈΑ͏
DESCFOW KQJHFOFSBUFXSBQQFS SCFOW DSFBUFNPEFMT SCFOW@XSBQQFSSC
DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS
FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS
FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS
FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS
FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
ઃఆը໘Λ ͍͍ͨ
None
NLEJSQWJFXTSCFOW@XSBQQFS UPVDIWJFXTSCFOW@XSBQQFS DPOpHFSC
GUBHMJC MJCGPSN GFOUSZ UJUMF7FSTJPO pFME WFSTJPO EFTDSJQUJPO36#: TVDIBT Q
EP GUFYUCPY FOE GFOUSZ UJUMF1SFJOTUBMMHFNMJTU pFME HFN@MJTU EFTDSJQUJPOFYCVOEMFS SBLF EP GUFYUCPY WBMVFCVOEMFS SBLF FOE config.erb
None
KFMMZUBHMJC
DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS
FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
BUUS@BDDFTTPSWFSTJPO EFGJOJUJBMJ[F BUUST\^ !WFSTJPO BUUST<WFSTJPO> FOE rbenv_wrapper.rb
DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS
FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
JOTUBMM@QBUIdSCFOWWFSTJPOT\!WFSTJPO^ CFHJO VOMFTT'JMF5FTUEJSFDUPSZ 'JMFFYQBOE@QBUI dSCFOW MJTUFOFS*OTUBMMSCFOWaO MBVODIFSFYFDVUF CBTI D
HJUDMPOF \3#&/7@1"5)^dSCFOW \PVUMJTUFOFS^ FOE SFTDVF CVJMEBCPSU FOE rbenv_wrapper.rb
JOTUBMM@QBUIdSCFOWWFSTJPOT\!WFSTJPO^ CFHJO VOMFTT'JMF5FTUEJSFDUPSZ 'JMFFYQBOE@QBUI dSCFOW MJTUFOFS*OTUBMMSCFOWaO MBVODIFSFYFDVUF CBTI D
HJUDMPOF \3#&/7@1"5)^dSCFOW \PVUMJTUFOFS^ FOE SFTDVF CVJMEBCPSU FOE rbenv_wrapper.rb
JOTUBMM@QBUIdSCFOWWFSTJPOT\!WFSTJPO^ CFHJO VOMFTT'JMF5FTUEJSFDUPSZ 'JMFFYQBOE@QBUI dSCFOW MJTUFOFS*OTUBMMSCFOWaO MBVODIFSFYFDVUF CBTI D
HJUDMPOF \3#&/7@1"5)^dSCFOW \PVUMJTUFOFS^ FOE SFTDVF CVJMEBCPSU FOE rbenv_wrapper.rb
JOTUBMM@QBUIdSCFOWWFSTJPOT\!WFSTJPO^ CFHJO VOMFTT'JMF5FTUEJSFDUPSZ 'JMFFYQBOE@QBUI dSCFOW MJTUFOFS*OTUBMMSCFOWaO MBVODIFSFYFDVUF CBTI D
HJUDMPOF \3#&/7@1"5)^dSCFOW \PVUMJTUFOFS^ FOE SFTDVF CVJMEBCPSU FOE rbenv_wrapper.rb
KQJ CVJME
1.QMVHJOTQFD͔Β QPNYNMΛੜ 2.IQJϑΝΠϧΛੜ
KQJ TFSWFS
QMVHJOΛ ಡΈࠐΜͩ +FOLJOT Λىಈ͢Δ
खಈςετ
KQJ SFMFBTF
1.KFOLJOTDJPSHʹΞο ϓϩʔυ͢Δ 3.Ҿແ͠TOBQTIPU SFMFBTFΛ͚Δͱ QSPEVDUJPO 2.dKFOLJOTDJPSHͷ ΞΧϯτใΛ༻
ͦͷଞ
UFTUVOJU PS STQFD ςετ
͑ͳ͍ͷͰ +BWBϥΠϒϥϦ ͰؤுΔ rubygems
etc https://github.com/jenkinsci/rvm-plugin https://github.com/hsbt/jenkins-rbenv-plugin https://github.com/takai/jenkins-hipchat-publisher-plugin
8SJUFZPVSQMVHJO