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

ペパボを支える大統一CI基盤と人々

 ペパボを支える大統一CI基盤と人々

http://plaidtech.connpass.com/event/41401/

2016/10/27 【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜

Yoshihide Taniguchi

October 27, 2016
Tweet

More Decks by Yoshihide Taniguchi

Other Decks in Technology

Transcript

  1. d1FQBCPY$*d
    :PTIJIJEF5"/*(6$)*
    ϓϨΠυYϖύϘ߹ಉษڧձ
    ϖύϘΛࢧ͑Δ
    େ౷Ұ$*؀ڥͱਓʑ

    View Slide

  2. ࠓ೔࿩͢͜ͱ
    w$*؀ڥͷҰྫͱͯ͠ϖύϘͷ$*؀ڥΛ঺հ
    wมભ
    wࠓͷશମ૾
    wݱ৔ͷ੠
    w՝୊

    View Slide

  3. ࠓ೔࿩͞ͳ͍͜ͱ
    w$*ͱ͸Կ͔ɺ$*ͷྺ࢙
    wେ౷Ұ$*ج൫ͷ࡞Γํ
    wϞόΠϧΞϓϦͷ$*

    View Slide


  4. ࠓޙ$*Λߟ͑Δࡍͷ
    ҰॿͱͳΕ͹خ͍͠Ͱ͢

    View Slide

  5. @ravelll
    :PTIJIJEF5"/*(6$)*

    View Slide

  6. wΞϓϦέʔγϣϯͷػೳ։ൃ
    wΞϓϦέʔγϣϯج൫ͷอक
    w։ൃج൫ͷվળ
    &$ج൫νʔϜ
    Χϥʔϛʔγϣοϓ

    View Slide

  7. 8&`3&)*3*/(

    View Slide

  8. 1FQBCP
    ʷ
    $*

    View Slide

  9. d

    View Slide

  10. l֤Ґɺ͍͍͔Μ͡ʹz

    View Slide

  11. ֤Ґ͍͍͔Μ͡ʹ΍Δ࣌୅
    ֤νʔϜ͕ࣗ༝ʹ$*؀ڥΛબ୒ɾಋೖ͍ͯͨ͠
    w+FOLJOT XFSDLFS 5SBWJT$* 4IJQQBCMF ʜ
    w஌ݟ͕νʔϜ͝ͱʹಠཱͯ͠஝ੵ
    ⾣ࠔͬͯΔਓ͕͍ͯ΋ॿ͚ΒΕͳ͍
    ⾣ଟ͘ͷਓ͕஍ཕΛ౿Ή

    View Slide

  12. d

    View Slide

  13. l֤Ґɺͳ͔Α͘z

    View Slide

  14. View Slide

  15. [ ] 0%

    View Slide

  16. [## ] 40%

    View Slide

  17. [#### ] 90%

    View Slide

  18. View Slide

  19. ֤Ґͳ͔Α͘΍Δ࣌୅
    શϦϙδτϦͰ౷Ұతʹ࢖͑Δ$*ج൫ͷొ৔
    ‣ΈΜͳ͕࢖͏͔ΒࠔͬͨΒ୭ʹͰ΋ॿ͚ΛٻΊΒΕΔ
    ‣ΈΜͳ͕࢖͏͔ΒϞϦϞϦ஌ݟ͕ཷ·Δ
    ‣ҟಈ࣌ͷֶशίετ͕গͳ͍

    View Slide

  20. $*ج൫ͷߏ੒

    View Slide

  21. drone.io

    View Slide

  22. IUUQXXXTMJEFTIBSFOFUVE[VSBESPOFJP

    View Slide

  23. ESPOFJP
    w(P੡ɺ044൛ͱ)PTUJOH൛͕͋Δ
    w ϖύϘͰ͸044൛ΛGPSLͯ͠࢖ͬͯΔʢWFSʣ
    w:BNMʢESPOFZNMʣʹ$*ͷλεΫΛهड़ɺϦϙδτϦͰ؅ཧ
    w ςετͷϙʔλϏϦςΟˢˢ
    w%PDLFSίϯςφΛϫʔΧʔͱͯ͠δϣϒΛ࣮ߦ
    w ֤νʔϜ͕Ϗϧυͨ͠$*༻%PDLFSΠϝʔδΛ

    ϓϥΠϕʔτϨδετϦܦ༝Ͱ࢖ͬͯΔʢޙͰઆ໌ʣ

    View Slide

  24. ESPOFZNM
    ---
    build:
    image: docker.pepabo.com/colorme/colorme-docker:0.0.1
    environment:
    - ENV=test
    commands:
    - ./vendor/bin/phpunit
    - bundle install --without=production --path vendor/bundle
    - bin/rake spec
    notify:
    slack:
    webhook_url: https://hooks.slack.com/services/ABC123DEFG/987ZYX/sBdiCpG7hZx
    username: drone
    channel: "#colorme"
    when:
    success: true
    failure: true

    View Slide

  25. ESPOFZNM
    ---
    build:
    image: docker.pepabo.com/colorme/colorme-docker:0.0.1
    environment:
    - ENV=test
    commands:
    - ./vendor/bin/phpunit
    - bundle install --without=production --path vendor/bundle
    - bin/rake spec
    notify:
    slack:
    webhook_url: https://hooks.slack.com/services/ABC123DEFG/987ZYX/sBdiCpG7hZx
    username: drone
    channel: "#colorme"
    when:
    success: true
    failure: true
    $*ʹ࢖͏%PDLFSJNBHFΛࢦఆ

    View Slide

  26. ESPOFZNM
    ---
    build:
    image: docker.pepabo.com/colorme/colorme-docker:0.0.1
    environment:
    - ENV=test
    commands:
    - ./vendor/bin/phpunit
    - bundle install --without=production --path vendor/bundle
    - bin/rake spec
    notify:
    slack:
    webhook_url: https://hooks.slack.com/services/ABC123DEFG/987ZYX/sBdiCpG7hZx
    username: drone
    channel: "#colorme"
    when:
    success: true
    failure: true
    ؀ڥม਺Λઃఆ

    View Slide

  27. ESPOFZNM
    ---
    build:
    image: docker.pepabo.com/colorme/colorme-docker:0.0.1
    environment:
    - ENV=test
    commands:
    - ./vendor/bin/phpunit
    - bundle install --without=production --path vendor/bundle
    - bin/rake spec
    notify:
    slack:
    webhook_url: https://hooks.slack.com/services/ABC123DEFG/987ZYX/sBdiCpG7hZx
    username: drone
    channel: "#colorme"
    when:
    success: true
    failure: true
    ࣮ߦ͢ΔίϚϯυ

    View Slide

  28. ESPOFZNM
    ---
    build:
    image: docker.pepabo.com/colorme/colorme-docker:0.0.1
    environment:
    - ENV=test
    commands:
    - ./vendor/bin/phpunit
    - bundle install --without=production --path vendor/bundle
    - bin/rake spec
    notify:
    slack:
    webhook_url: https://hooks.slack.com/services/ABC123DEFG/987ZYX/sBdiCpG7hZx
    username: drone
    channel: "#colorme"
    when:
    success: true
    failure: true
    ݁ՌΛ4MBDLʹ௨஌

    View Slide

  29. ϓϥΠϕʔτ%PDLFSϨδετϦ
    w%PDLFSΫϥελʢ%PDLFS4XBSNʣΛߏங͢ΔͨΊ༻ҙ
    w$*༻ͷ%PDLFSΠϝʔδΛQVTI͓ͯ͘͠
    wެ։ͨ͘͠ͳ͍%PDLFSΠϝʔδ΋҆৺҆શ

    View Slide

  30. 1. push
    0. docker build &&

    docker push
    3. pull
    devs repos
    private

    View Slide

  31. ݱ৔ͷ੠

    View Slide

  32. ར༻ྫɿΧϥʔϛʔγϣοϓ
    ϦϙδτϦݸʢ$*Λར༻͍ͯ͠Δ΋ͷ͕ʣ
    ։ൃऀ਺ਓʢΤϯδχΞσβΠφʔʣ
    ༻్ࣗಈςετʢ1)1 3VCZ +BWB4DSJQUʣ
    ؀ڥͷભҠ+FOLJOTˠESPOF

    View Slide

  33. ϦϦʔεϑϩʔ
    τϐοΫϒϥϯνͰ։ൃ
    ׬੒ͨ͠ΒϨϏϡʔґཔ
    $*ςετ௨ͬͯΔϨϏϡʔ0,
    ͳΒNBTUFSʹϚʔδɺσϓϩΠ
    ˝
    ˝
    QVTI͞ΕͨΒςετ

    View Slide

  34. ଓʑͱςετ͕ߦΘΕ͍ͯ͘෩ܠ

    View Slide

  35. ௨஌ͷ͋Δ෩ܠ

    View Slide

  36. ؀ڥΛҠߦͯ͠ͷॴײ
    w$*؀ڥࣗମͷτϥϒϧ͕ݮͬͨ
    w+FOLJOTͷࠒ͸ϓϥάΠϯͷόʔδϣϯΞοϓͰ؀ڥյ͢ͷ͕ྲྀߦͬͯͨ
    w ࠓ͸0⒏DJBMͷ%PDLFS*NBHF͋Δ͠αοͱ࠶ߏஙͰ͖ͯࠔΒͳͦ͏
    wࠔͬͨͱ͖୭ʹͰ΋࣭໰Ͱָ͖ͯ
    w։ൃऀ༻νϟϯωϧͰࡶʹ࣭໰͢ΔͱҰॠͰղܾ͢Δ
    wͦ΋ͦ΋ࠔΔػձ͕ܹݮͨ͠

    View Slide

  37. ༏͍͠ੈք

    View Slide

  38. ՝୊

    View Slide

  39. ESPOFଆͷ՝୊
    %PDLFSଆͷ՝୊
    ݱ৔ͷ՝୊

    View Slide

  40. ESPOFଆͷ՝୊
    w࢖༻ྔʹԠͨ͡Ϧιʔε੍ޚ
    wεέδϡʔϥ͕ಉ࣌ىಈδϣϒ਺੍͔͠ݶͰ͖ͳ͍
    w֤δϣϒͷϦιʔε࢖༻ྔʹԠ੍ͨ͡ݶ͕͍ͨ͠

    View Slide

  41. %PDLFSଆͷ՝୊
    wNBTUFSͷ%PDLFSσʔϞϯͷ࢖༻ϝϞϦ͕ଠ͍ͬͯ͘
    w࢖͍ํͷ໰୊ʁ
    wDSPOͰఆظతʹ࠶ىಈͯ͠ରԠத
    wͦ΋ͦ΋ϝϞϦ͕૿͑ଓ͚ͳ͍࢓૊ΈΛ࡞Γ͍ͨ

    View Slide

  42. ݱ৔ͷ՝୊
    w%PDLFSͷཧղ
    w֓೦΍ૢ࡞ํ๏Λ͋·Γ஌Βͳ͍ਓ΋ͦΕͳΓʹ͍Δ
    wগ਺ͷ༗ࣝऀ͔͠ϝϯςφϯε͠ͳ͍%PDLFSpMF
    wνʔϜͰϋϯζΦϯ΍Δͱྑͦ͞͏

    View Slide

  43. ·ͱΊ
    wϖύϘͷେ౷Ұ$*؀ڥΛ঺հ͠·ͨ͠
    wνʔϜ͝ͱͷ؀ڥ͔Β౷Ұ؀ڥ΁ͷมભ
    w౷Ұ$*ج൫ͷશମ૾
    w$*ج൫Λར༻͢Δݱ৔ͷ੠
    w$*ج൫ͱݱ৔ͷ՝୊

    View Slide

  44. &/+0:
    %&7&-011*/(
    8*5)$*

    View Slide