Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to develop Jenkins plugin using to ruby and Jenkins.rb

How to develop Jenkins plugin using to ruby and Jenkins.rb

SHIBATA Hiroshi

July 29, 2012
Tweet

More Decks by SHIBATA Hiroshi

Other Decks in Technology

Transcript

  1. ࣲాതࢤ 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 ϓϥάΠϯ࡞੒
  2. +FOLJOT6TFS $POGFSFODF5PLZP ։࠵͓ΊͰͱ͏͍͟͝·͢ɻ

  3. εϙϯαʔͷ͝঺հ

  4. ࣗݾ঺հ

  5. SHIBATA Hiroshi

  6. http://twitter.com/hsbt/ http://www.hsbt.org/ http://github.com/hsbt/

  7. None
  8. None
  9. ձࣾ঺հ ```

  10. None
  11. ࢓ࣄ಺༰

  12. ٕज़ج൫ ੔උ ΤϯδχΞ

  13. None
  14. None
  15. ձࣾ঺հ ऴΘΓ

  16. None
  17. ๛෋ͳϓϥάΠϯ

  18. ࣗ෼Ͱ΋ϓ ϥάΠϯͳ Β࡞Εͦ͏ ͳؾ͕͢Δ

  19. None
  20. +BWB

  21. KFOLJOTSC

  22. 1.KBWBSVOUJNF 4.SVCZUPPMTKQJ 3.SVCZUPPMTDMJ 2.SVCZSVOUJNF

  23. KBWBSVOUJNF SVCZSVOUJNF +FOLJOTʹ+3VCZΛ ૊ΈࠐΉ +FOLJOTͷ+BWBΫϥε Λ+3VCZͰϥούʔ͢Δ

  24. SVCZUPPMTDMJ SVCZUPPMTKQJ KFOLJOTΛૢ࡞͢Δౕ ࠓ೔͸ͳ͢͜ͱ

  25. KQJSC

  26. SCFOWJOTUBMMKSVCZ SCFOWTIFMMKSVCZ HFNJOTUBMMKQJ

  27. $PNNBOET KQJIFMQ<$0.."/%> KQJOFX/".& KQJHFOFSBUF<PQUJPOT><BSHVNFOUT> KQJCVJME KQJTFSWFS KQJSFMFBTF KQJWFSTJPO

  28. KQJ IFMQ KQJ WFSTJPO

  29. লུ

  30. KQJ OFX

  31. KQJOFXSCFOW DSFBUFSCFOW(FNpMF DSFBUFSCFOWKFOLJOT SCFOWQMVHJOTQFD

  32. TPVSDFSVCZHFNT HFNKFOLJOTQMVHJOSVOUJNF d  Gemfile

  33. +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
  34. +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
  35. +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
  36. +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
  37. +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
  38. +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
  39. +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
  40. +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
  41. +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
  42. KQJ HFOFSBUF

  43. "WBJMBCMF(FOFSBUPST QVCMJTIFS CVJMEFS XSBQQFS OPEF@QSPQFSUZ SVO@MJTUFOFS DPNQVUFS@MJTUFOFS

  44. 1.QVCMJTIFS 3.XSBQQFS 2.CVJMEFS ϏϧυޙʹԿ͔΍Δ Ϗϧυͱͯ͠Կ͔΍Δ ϏϧυલޙʹॲཧΛڬΉ

  45. 4.OPEF@QSPQFSUZ 6.DPNQVUFS@MJTUFOFS 5.SVO@MJTUFOFS jenkins ͷ node ઃఆ Ϗϧυͷ׬ྃΛड͚औͬ ͯԿ͔΍Δ εςʔλε͕มΘͬͨ࣌

    ʹԿ͔΍Δ
  46. XSBQQFS Λ࡞ͬͯΈΑ͏

  47. DESCFOW KQJHFOFSBUFXSBQQFS SCFOW DSFBUFNPEFMT SCFOW@XSBQQFSSC

  48. DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS

    FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
  49. DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS

    FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
  50. DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS

    FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
  51. DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS

    FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
  52. ઃఆը໘Λ ࢖͍͍ͨ

  53. None
  54. NLEJSQWJFXTSCFOW@XSBQQFS UPVDIWJFXTSCFOW@XSBQQFS DPOpHFSC

  55.  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
  56. None
  57. KFMMZUBHMJC

  58. DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS

    FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
  59. BUUS@BDDFTTPSWFSTJPO EFGJOJUJBMJ[F BUUST\^ !WFSTJPO BUUST<WFSTJPO> FOE rbenv_wrapper.rb

  60. DMBTT3CFOW8SBQQFS +FOLJOT5BTLT#VJME8SBQQFS EJTQMBZ@OBNF3CFOWCVJMEXSBQQFS EFGJOJUJBMJ[F BUUST\^ FOE EFGTFUVQ CVJME MBVODIFS MJTUFOFS

    FOE EFGUFBSEPXO CVJME MJTUFOFS FOE FOE rbenv_wrapper.rb
  61. 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
  62. 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
  63. 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
  64. 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
  65. KQJ CVJME

  66. 1.QMVHJOTQFD͔Β QPNYNMΛੜ੒ 2.IQJϑΝΠϧΛੜ ੒

  67. KQJ TFSWFS

  68. QMVHJOΛ ಡΈࠐΜͩ +FOLJOT Λىಈ͢Δ

  69. खಈςετ

  70. KQJ SFMFBTF

  71. 1.KFOLJOTDJPSHʹΞο ϓϩʔυ͢Δ 3.Ҿ਺ແ͠͸TOBQTIPU  SFMFBTFΛ෇͚Δͱ QSPEVDUJPO 2.dKFOLJOTDJPSHͷ ΞΧ΢ϯτ৘ใΛ࢖༻

  72. ͦͷଞ

  73. UFTUVOJU PS STQFD ςετ

  74. ࢖͑ͳ͍ͷͰ +BWBϥΠϒϥϦ ͰؤுΔ rubygems

  75. etc https://github.com/jenkinsci/rvm-plugin https://github.com/hsbt/jenkins-rbenv-plugin https://github.com/takai/jenkins-hipchat-publisher-plugin

  76. 8SJUFZPVSQMVHJO