$30 off During Our Annual Pro Sale. View Details »

How We Use Jenkins?

Naoto Takai
January 12, 2015

How We Use Jenkins?

At Jenkins user conference 2015 Tokyo

Naoto Takai

January 12, 2015
Tweet

More Decks by Naoto Takai

Other Decks in Programming

Transcript

  1. ΫοΫύουʹ͓͚Δ+FOLJOTͷ׆༻

  2. None
  3. ݄ؒར༻ऀ਺ͷ΂ ສਓҎ্ Ϩγϐ਺ສ඼Ҏ্

  4. 3VCZ 3VCZPO3BJMT "NB[PO8FC4FSWJDFT

  5. ݁࿦ɿ;ͭ͏ʹ͍ͯ͠Δ

  6. ΫοΫύουͰ͸ +FOLJOTΛ࢖͍ͬͯ·ͤΜ ͓࿳ͼ

  7. ͓Ή͖Μ͢

  8. DJTMBWFEPDLFS DJTMBWFSVCZ OPEFT DJTMBWFBOESPJE DJTMBWFJPT DJNBTUFS SSSTQFDNBTUFS SSSTQFDXPSLFS "84 0OQSFNJTFT

  9. ϚελɾεϨʔϒߏ੒ w αʔόߏ੒؅ཧ͸1VQQFUʗ*UBNBF w ϓϥοτϑΥʔϜɾϛυϧ΢ΣΞ w Ϋϥ΢υͱΦϯϓϨϛε؀ڥ w ϥϕϧͰϊʔυΛ؅ཧ

  10. DJTMBWFSVCZ w "84্Ͱϊʔυ͕Քಈ w ໷ؒ͸ϊʔυʹॖୀӡస w SCFOWͰ3VCZόʔδϣϯ؅ཧ
 ϥϕϧͰϥΠϒϥϦΛղܾ

  11. STQFD describe SymbolStack do ... context 'when stack is empty'

    do subject(:empty_stack) { SymbolStack.new } describe '#size' do it { expect(empty_stack.size).to eq 0 } end
  12. DBQZCBSBXFCLJU feature 'User login' do scenario 'successful login' do visit

    login_path fill_in 'Login', with: 'user@example.com' fill_in 'Password', with: 'password' click_link 'Submit' expect(current_path).to root_path end
  13. DJTMBWFEPDLFS w %PDLFS&OHJOF༻$*؀ڥ w ϏϧυɾςετɾϨδετϦొ࿥

  14. DJTMBWF\BOESPJE JPT^ w ΦϑΟεͷαʔόϧʔϜʹઃஔ w "OESPJE͸࣮ػͰςετ w 9DPEFͷόʔδϣϯ؅ཧͰྀۤ

  15. DJTMBWFEPDLFS DJTMBWFSVCZ OPEFT DJTMBWFBOESPJE DJTMBWFJPT DJNBTUFS SSSTQFDNBTUFS SSSTQFDXPSLFS "84 0OQSFNJTFT

  16. ͳͥɺ$*Λ͍ͯ͠Δͷ͔ʁ

  17. ʮຖ೔ͷྉཧΛָ͠Έʹʯ

  18. ߏங͢Δ ܭଌ͢Δ ֶͿ ੡඼ σʔλ ΞΠσΞ

  19. ҙਤ͠ͳ͍มߋΛ༧๷Ͱ͖Δ ࠶ݱՄೳͰࣗಈԽ͞Ε͍ͯΔ Ϧιʔε΍৘ใΛू໿Ͱ͖Δ ʹ$*ͰकΔ΂͖Ձ஋

  20. ҙਤ͠ͳ͍มߋΛ༧๷Ͱ͖Δ ɾλʔϯΞϥ΢ϯυΛ୹͔͘͢Δ ɾ͙͢ʹࣦഊΛ఻͑Δ ɾෆ۩߹Λ์ஔͤ͞ͳ͍

  21. ։ൃऀ͸े෼ʹၗຫͳͷͰɺ ෼ͰΠϥΠϥ͠ɺ෼ͰΩϨΔɻ

  22. w ϚϧνϓϩηεԽʢQBSBMMFM@UFTUTʣ w ෼ࢄԽ w ୈ̍ੈ୅SFNPUF@TQFD w ୈ̎ੈ୅SFNPUF@TQFD w SSSTQFD

  23. None
  24. None
  25.  εϙοτΠϯελϯεΛར༻  ϓϩηεఀࢭ͔Βͷࣗಈ෮ؼ  ࣦഊͨ͠ςετͷࣗಈ࠶࣮ߦ  ςετ࣮ߦॱংͷ࠷దԽ  ௕͔͔࣌ؒΔςετͷ౤ػత࣮ߦ

     Φʔϓϯιʔε
  26. None
  27. ҙਤ͠ͳ͍มߋΛ༧๷Ͱ͖Δ ɾλʔϯΞϥ΢ϯυΛ୹͔͘͢Δ ɾ͙͢ʹࣦഊΛ఻͑Δ ɾෆ۩߹Λ์ஔͤ͞ͳ͍

  28. 3334QFD$*'BJMFEFYBNQMFTPGDPPLQBE@SSSTQFD SSSTQFDUBTLTFUCCGECGD   STQFDTQFDDPOUSPMMFSTNZ@DPOUSPMMFS@TQFDSC EC "MJDF$PPQFS NPOUITBHP  STQFDTQFDDPOUSPMMFSTNZ@DPOUSPMMFS@TQFDSC

    DDBD #PC.BSMFZ NPOUITBHP  STQFDTQFDDPOUSPMMFSTNZ@DPOUSPMMFS@TQFDSC DBGC $IBSMJF1BSLFS NPOUITBHP +FOLJOTDPPLQBE@SSSTQFD'"*-63&BGUFS෼Ҏ্ 0QFO  +FOLJOT$IBOHFECZ!EBWF!FWF KFOLJOTIJQDIBUQVCMJTIFS SSSTQFD
  29. None
  30. KFOLJOTIJQDIBUQVCMJTIFS w )JQ$IBU1MVHJOͱͷҧ͍ w +FOLJOTSC w ࣦഊ࣌ʹϝϯγϣϯ͢Δػೳ w ੒ޭϏϧυΛ௨஌͠ͳ͍ػೳ

  31. ҙਤ͠ͳ͍มߋΛ༧๷Ͱ͖Δ ɾλʔϯΞϥ΢ϯυΛ୹͔͘͢Δ ɾ͙͢ʹࣦഊΛ఻͑Δ ɾෆ۩߹Λ์ஔͤ͞ͳ͍

  32. ։ൃऀจԽͱن཯ ɾίʔυͷڞಉॴ༗ʢPXOFSTIJQʣ ɾِཅੑɺׂΕ૭ཧ࿦ ɾܧଓతσϦόϦʔʢޙड़ʣ

  33. l$PMMFDUJWF0XOFSTIJQFODPVSBHFTFWFSZPOFUP DPOUSJCVUFOFXJEFBTUPBMMTFHNFOUTPGUIF QSPKFDU"OZEFWFMPQFSDBODIBOHFBOZMJOFPG DPEFUPBEEGVODUJPOBMJUZ pYCVHT JNQSPWF EFTJHOTPSSFGBDUPS/PPOFQFSTPOCFDPNFTB CPUUMFOFDLGPSDIBOHFTl IUUQXXXFYUSFNFQSPHSBNNJOHPSHSVMFTDPMMFDUJWFIUNM

  34. ِཅੑΛආ͚Δ ɾ࣌ؒʹґଘ͢Δ΋ͷ ɾ૊Έ߹Θͤʹґଘ͢Δ΋ͷ ɾੑೳʹґଘ͢Δ΋ͷ

  35. ِཅੑ͕͋Δͱʜʜ ɾΤϥʔΛؾʹ͠ͳ͘ͳͬͯ͠·͏ ɾຊ෺ͷΤϥʔΛݟಀͯ͠͠·͏ ˠϞϥϧ௿Լɺڟѱ൜ࡑͷଟൃ

  36. None
  37. w ࠷ޙʹ੒ޭͨ͠ϏϧυΛ܁Γฦ͠ ࣮ߦͯ͠ΈΔ w ཌ݄ॳʹγεςϜ࣌ؒΛઃఆͯ͠ ࣮ߦͯ͠ΈΔ w ࣦഊͨ͠ςετΛ࠶࣮ߦͯ͠ΈΔ

  38. ҙਤ͠ͳ͍มߋΛ༧๷Ͱ͖Δ ࠶ݱՄೳͰࣗಈԽ͞Ε͍ͯΔ Ϧιʔε΍৘ใΛू໿Ͱ͖Δ ʹ$*ͰकΔ΂͖Ձ஋

  39. ʮͳͥ$*Λಋೖ͍ͯ͠ͳ͍ͷͰ͔͢ʁʯ ʮฐࣾͷΤϯδχΞ͸ҙ͕ࣝߴ͍ͨΊɺϩʔΧϧ ؀ڥͰςετΛ࣮ߦͤͣʹɺϦϙδτϦʹιʔε ίʔυΛίϛοτ͠·ͤΜʢΩϦοʯ

  40. ʮܧଓతσϦόϦʔ͸ιϑτ΢ΣΞ։ൃʹ͓͚Δ ن཯ͷͻͱͭͩɻʜʜܧଓతσϦόϦʔΛ࣮ݱ͢ Δʹ͸ɺ։ൃνʔϜ͕ιϑτ΢ΣΞΛܧଓతʹ౷ ߹͠ɺ࣮ߦϑΝΠϧΛϏϧυ͠ɺ͞ΒʹͦΕΛ ࣗಈతʹςετͯ͠໰୊Λݕग़͢Ε͹͍͍ɻʯ IUUQDBQTDUSMRVFKQLENTOSXJLJCMJLJ $POUJOVPVT%FMJWFSZ

  41. ੒Ռ෺ϦϙδτϦ όʔδϣϯίϯτϩʔϧ ιʔείʔυ ઃఆ ίϛοτεςʔδ ड͚ೖΕεςʔδ ड͚ೖΕςετ ؀ڥઃఆɺσϓϩΠɺ εϞʔΫςετ ੑೳςετ

    ؀ڥઃఆɺσϓϩΠɺ εϞʔΫςετ ຊ൪؀ڥ ؀ڥઃఆɺσϓϩΠɺ εϞʔΫςετ ίϯύΠϧ ίϛοτςετ ੒Ռ෺࡞੒ ίʔυղੳ ؀ڥઃఆ σϓϩΠ εϞʔΫςετ ड͚ೖΕςετ ઃఆ +F[)VNCMFɺ%BWJE'BSMFZʰܧଓతσϦόϦʔʱ
  42. ʮτϤλੜ࢈ํࣜͰ࢖ΘΕΔʰࣗಈԽʱ͸ɺχϯ ϕϯͷ෇͘ʰࣗಇԽʱͰ͢ɻʜʜʰࣗಇʱͱ͸ɺ ػցʹળ͠ѱ͠Λ൑அͤ͞Δ૷ஔΛϏϧτΠϯ͠ ͨػցͰ͋Γɺʜʜʰҟৗ͕͋Ε͹ػց͕ࢭ·Δʱ ͜ͱͰɺෆྑ඼͸ੜ࢈͞ΕͣɺͻͱΓͰԿ୆΋ͷ ػցΛӡసͰ͖ΔͷͰɺੜ࢈ੑΛඈ༂తʹ޲্͞ ͤΔ͜ͱ͕Ͱ͖·ͨ͠ɻʯ IUUQXXXUPZPUBDPKQKQODPNQBOZWJTJPOQSPEVDUJPO@TZTUFNKJEPLBIUNM

  43. $*ͰͷࣗಈԽ ɾςετͷࣗಈԽ ɾΞηοτͷੜ੒ͱ؅ཧͷࣗಈԽ ɾσϓϩΠͷࣗಈԽ ɾ௨஌ɾه࿥ͷࣗಈԽ

  44. HJUIVC DJNBTUFS SSSTQFDNBTUFS SSSTQFDXPSLFS  OPEFT HSPXUIGPSFDBTU NBNJZB BQQ 

    OPEFT IJQDIBU BQQTUBHJOH
  45. None
  46. ҙਤ͠ͳ͍มߋΛ༧๷Ͱ͖Δ ࠶ݱՄೳͰࣗಈԽ͞Ε͍ͯΔ Ϧιʔε΍৘ใΛू໿Ͱ͖Δ ʹ$*ͰकΔ΂͖Ձ஋

  47. Ϧιʔε΍৘ใΛू໿Ͱ͖Δ ɾΞηοτͷੜ੒ͱ؅ཧ ɾ੩తղੳʢΧόϨοδɾηΩϡϦςΟʣ ɾه࿥ͱՄࢹԽ

  48. DJNBTUFS SSSTQFDNBTUFS NBNJZB BQQTUBHJOH ΞηοτͷίϯύΠϧʢඞཁ࣌ʣ HJUIVC SSSTQFDͷ࣮ߦ มߋͷऔಘ Ξηοτอଘ Ξηοτ഑৴

  49. None
  50. $*ͷՁ஋ΛकΔߦಈ ɾҙਤ͠ͳ͍มߋΛ༧๷͢Δ ɾ࠶ݱՄೳͳΑ͏ʹࣗಈԽ͢Δ ɾϦιʔε΍৘ใΛू໿͢Δ

  51. ;ͭ͏ʹ͍ͯ͠Δ ʹ΍Δ΂͖͜ͱΛ΍Δ ʹৗʹͦ͏͋ΔΑ͏ʹ͢Δ