ࣲాതࢤSHIBATA HiroshiQBQFSCPZDPBTBLVTBSCpaperboy&co., Inc.How to develop Jenkins plugin using to ruby andJenkins.rbൃදॴ+FOLJOT6TFS$POGFSFODF 2012-07-29(Sun)KFOLJOTSCͰ࢝ΊΔ3VCZͰ+FOLJOTϓϥάΠϯ࡞
View Slide
+FOLJOT6TFS$POGFSFODF5PLZP։࠵͓ΊͰͱ͏͍͟͝·͢ɻ
εϙϯαʔͷ͝հ
ࣗݾհ
SHIBATA Hiroshi
http://twitter.com/hsbt/http://www.hsbt.org/http://github.com/hsbt/
ձࣾհ```
ࣄ༰
ٕज़ج൫උΤϯδχΞ
ձࣾհऴΘΓ
๛ͳϓϥάΠϯ
ࣗͰϓϥάΠϯͳΒ࡞Εͦ͏ͳؾ͕͢Δ
+BWB
KFOLJOTSC
1.KBWBSVOUJNF4.SVCZUPPMTKQJ3.SVCZUPPMTDMJ2.SVCZSVOUJNF
KBWBSVOUJNFSVCZSVOUJNF+FOLJOTʹ+3VCZΛΈࠐΉ+FOLJOTͷ+BWBΫϥεΛ+3VCZͰϥούʔ͢Δ
SVCZUPPMTDMJSVCZUPPMTKQJKFOLJOTΛૢ࡞͢Δౕࠓͳ͢͜ͱ
KQJSC
SCFOWJOTUBMMKSVCZSCFOWTIFMMKSVCZHFNJOTUBMMKQJ
$PNNBOETKQJIFMQ<$0.."/%>KQJOFX/".&KQJHFOFSBUFKQJCVJMEKQJTFSWFSKQJSFMFBTFKQJWFSTJPO
KQJIFMQKQJWFSTJPO
লུ
KQJOFX
KQJOFXSCFOWDSFBUFSCFOW(FNpMFDSFBUFSCFOWKFOLJOTSCFOWQMVHJOTQFD
TPVSDFSVCZHFNTHFNKFOLJOTQMVHJOSVOUJNF dGemfile
+FOLJOT1MVHJO4QFDJpDBUJPOOFXEPcQMVHJOcQMVHJOOBNFKFOLJOTSCFOWQMVHJOEJTQMBZ@OBNF+FOLJOT3CFOW1MVHJOQMVHJOWFSTJPOQMVHJOEFTDSJQUJPO50%0FOUFSEFTDSJQUJPOIFSFQMVHJOVSMIUUQTXJLJKFOLJOTDJPSHEJTQMBZ+&/,*/4+FOLJOT3CFOW1MVHJOQMVHJOEFWFMPQFE@CZTIJCBUBIJSPTIJ 4)*#"5")JSPTIJTIJCBUBIJSPTIJ!HNBJMDPNQMVHJOVTFT@SFQPTJUPSZHJUIVCKFOLJOTSCFOWQMVHJOQMVHJOEFQFOET@POSVCZSVOUJNF FOEjenkins-rbenv.pluginspec
KQJHFOFSBUF
"WBJMBCMF(FOFSBUPSTQVCMJTIFSCVJMEFSXSBQQFSOPEF@QSPQFSUZSVO@MJTUFOFSDPNQVUFS@MJTUFOFS
1.QVCMJTIFS3.XSBQQFS2.CVJMEFSϏϧυޙʹԿ͔ΔϏϧυͱͯ͠Կ͔ΔϏϧυલޙʹॲཧΛڬΉ
4.OPEF@QSPQFSUZ6.DPNQVUFS@MJTUFOFS5.SVO@MJTUFOFSjenkins ͷ node ઃఆϏϧυͷྃΛड͚औͬͯԿ͔Δεςʔλε͕มΘͬͨ࣌ʹԿ͔Δ
XSBQQFSΛ࡞ͬͯΈΑ͏
DESCFOWKQJHFOFSBUFXSBQQFSSCFOWDSFBUFNPEFMTSCFOW@XSBQQFSSC
DMBTT3CFOW8SBQQFS+FOLJOT5BTLT#VJME8SBQQFSEJTQMBZ@OBNF3CFOWCVJMEXSBQQFSEFGJOJUJBMJ[F BUUST\^FOEEFGTFUVQ CVJME MBVODIFS MJTUFOFSFOEEFGUFBSEPXO CVJME MJTUFOFSFOEFOErbenv_wrapper.rb
ઃఆը໘Λ͍͍ͨ
NLEJSQWJFXTSCFOW@XSBQQFSUPVDIWJFXTSCFOW@XSBQQFSDPOpHFSC
GUBHMJC MJCGPSNGFOUSZ UJUMF7FSTJPO pFMEWFSTJPO EFTDSJQUJPO36#: TVDIBTQEPGUFYUCPYFOEGFOUSZ UJUMF1SFJOTUBMMHFNMJTU pFMEHFN@MJTU EFTDSJQUJPOFYCVOEMFS SBLFEPGUFYUCPY WBMVFCVOEMFS SBLFFOEconfig.erb
KFMMZUBHMJC
BUUS@BDDFTTPSWFSTJPOEFGJOJUJBMJ[F BUUST\^!WFSTJPOBUUST<WFSTJPO>FOErbenv_wrapper.rb
JOTUBMM@QBUIdSCFOWWFSTJPOT\!WFSTJPO^CFHJOVOMFTT'JMF5FTUEJSFDUPSZ 'JMFFYQBOE@QBUI dSCFOWMJTUFOFS*OTUBMMSCFOWaOMBVODIFSFYFDVUF CBTI D HJUDMPOF\3#&/7@1"5)^dSCFOW \PVUMJTUFOFS^FOESFTDVFCVJMEBCPSUFOErbenv_wrapper.rb
KQJCVJME
1.QMVHJOTQFD͔ΒQPNYNMΛੜ2.IQJϑΝΠϧΛੜ
KQJTFSWFS
QMVHJOΛಡΈࠐΜͩ+FOLJOTΛىಈ͢Δ
खಈςετ
KQJSFMFBTF
1.KFOLJOTDJPSHʹΞοϓϩʔυ͢Δ3.Ҿແ͠TOBQTIPU SFMFBTFΛ͚ΔͱQSPEVDUJPO2.dKFOLJOTDJPSHͷΞΧϯτใΛ༻
ͦͷଞ
UFTUVOJUPSSTQFDςετ
͑ͳ͍ͷͰ+BWBϥΠϒϥϦͰؤுΔrubygems
etchttps://github.com/jenkinsci/rvm-pluginhttps://github.com/hsbt/jenkins-rbenv-pluginhttps://github.com/takai/jenkins-hipchat-publisher-plugin
8SJUFZPVSQMVHJO