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

ベンチャー企業がCircleCIを選んだ理由と活用方法

 ベンチャー企業がCircleCIを選んだ理由と活用方法

第2回CircleCI ユーザーコミュニティミートアップ 発表内容
https://circleci.connpass.com/event/120371/

D504d1f14dd00f8028c440e9d1923d37?s=128

Yasuhiroki

March 05, 2019
Tweet

Transcript

  1. ϕϯνϟʔاۀ͕ CircleCIΛબΜͩཧ༝ ͱ׆༻ํ๏ A10 Lab Inc.
 @yasuhiroki

  2. ࣗݾ঺հ

  3. ࣗݾ঺հ Workflow

  4. Yasuhiroki (@duck_yasuhiroki)

  5. CircleCI User Community ӡӦ

  6. ޷͖ͳ΋ͷ / ۤखͳ΋ͷ

  7. Workflowશମ

  8. ͪΌΜͱ Job ΋ॻ͍ͨΑ

  9. ࣗݾ঺հ ৄࡉ • yasuhiroki (tw: @duck_yasuhiroki) • CircleCI User Community

    ӡӦϝϯόʔ • CircleCIྺ͸ 2.0 ͕ग़ͨࠒ͔Β • ͦͷલ͸ Jenkins ͓͡͞Μ
  10. ϕϯνϟʔاۀ͕CircleCIΛ બΜͩཧ༝ͱ׆༻ํ๏

  11. ฐࣾ঺հ • A10 Lab Inc. • 2017೥2݄ʹιχʔ͔Βಠཱ • ࡾ೔๥ओ๷ࢭΞϓϦʮΈΜνϟϨʯ

  12. None
  13. ϝϯόʔ໿ 10໊
 (ΠϯλʔϯؚΉ)

  14. ΤϯδχΞ 7໊
 (ΠϯλʔϯؚΉ)

  15. ΤϯδχΞͷ୲౰಺༁ • Android: 3໊ • iOS: 4໊ • API: 3໊

    • AWS 2໊
  16. ΤϯδχΞ਺ΑΓଟ͍ • Android: 3໊ • iOS: 4໊ • API: 3໊

    • AWS 2໊ > 7
  17. ΤϯδχΞ਺ΑΓଟ͍ • Android: 3໊ • iOS: 4໊ • API: 3໊

    • AWS 2໊ 1ਓN໾
  18. ଞʹ΋

  19. ͓໰͍߹Θͤ
 ɹ=> ରԠ͠·͢ ετΞϨϏϡʔ ɹ=> ରԠ͠·͢ αʔϏε಺௨ใ ɹ=> ରԠ͠·͢

  20. ։ൃ͢Δ࣌ؒ͸ݶΒΕ͍ͯΔ

  21. ͦΜͳ؀ڥͰ
 CircleCI Λͳͥબͼ
 CircleCI ͰԿΛͨ͠ͷ͔

  22. CircleCIΛબΜͩཧ༝

  23. CircleCI ΛબΜͩཧ༝ • ར༻͢ΔαʔϏεΛݮΒ͍ͨ͠

  24. ར༻͢ΔαʔϏεΛݮΒ͍ͨ͠ • ࣾһ਺͕গͳ͍ͷͰ 1ਓN໾ • Android/iOS/Rails ͳͲԣஅͯ͠୲౰ • ݶΒΕͨϦιʔεͷதͰ΍Γ͘Γ

  25. Ϧιʔε͕ݶΒΕ͍ͯΔͷͰ • αʔϏεΛ͍ͭ͘΋࢖͏ͱɺ
 ֶशίετɾ؅ཧίετ ͕૿͑ͯࠔΔ • 1ͭͷαʔϏεʹू໿Ͱ͖Δͱخ͍͠

  26. ͦ͜Ͱ CircleCI ΛબͿ • iOS/Android/Rails/AWS ͢΂ͯରԠͰ͖Δ

  27. CircleCI ΛબΜͩ΋ͷͷ... • iOS/Android/Rails/AWS ͢΂ͯରԠͰ͖Δ • ͱɺࢥ͍͕ͬͯͨ...

  28. CircleCI ͷ macOS ϓϥϯ • Linuxͱ͸ผྉۚ • ࠷௿ $39/݄ •

    Ϗϧυ੍࣌ؒݶ • ࠷௿ 500෼/݄
  29. CircleCI ͷ macOS ϓϥϯ • ຖ೔ΨϯΨϯϏϧυ͍ͨ͠ • 500෼͡Ό଍Γͳ͍ • ͬ͘͟Γܭࢉ͢Δͱɺ


    ɹɹ1Ϗϧυ10෼ * 10ճ * 20೔
 ɹɹɹɹɹɹɹ => 2000෼ ཉ͍͠
  30. CircleCI ͷ macOS ϓϥϯ • ্ҐͷϓϥϯͳΒͲ͏͔ • $129/݄ (1800෼) •

    $249/݄ (5000෼) • ଞͷख͕ͳ͍͔ͳ͊...
  31. None
  32. iOS ͸ bitrise ʹͨ͠ • ΫϥΠΞϯτΞϓϦʹ
 ಛԽ͍ͯ͠ΔͷͰ͔Ώ͍ͱ͜Ζʹख͕ಧ͘ • ຖ೔ΨϯΨϯϏϧυͰ͖ΔΑ͏ʹͳͬͨ •

    CircleCI ͷΩϡʔ͕ۭ͍ͯྑ͍ • ࢖͏αʔϏε͕૿͑ͨ...
  33. ͍ͬͦ bitrise ʹ౷Ұ͢Δʁ • bitrise ͸ΫϥΠΞϯτΞϓϦʹಛԽ • Rails ΍ AWS

    Λѻ͏ͷ͸Ͱ͖ͳ͍?
 Ͱ͖ͨͱͯ͠΋೉ͦ͠͏?
  34. CircleCI & bitrise ମ੍ʹ • CircleCI ʹ౷Ұ͍ͨ͠ؾ࣋ͪ͸͋Δ • iOSαϙʔτ͕ڧԽ͞ΕΔͱ͍͍ͳ͊

  35. CircleCIͷ׆༻ํ๏

  36. 1ਓN໾ͷ՝୊

  37. ઐ໳֎ͷྖҬʹ৮ΕΔͷͰ... • ίʔυͷॻ͖ํ͕ͦΕͧΕҧͬͯށ࿭͏ • σϓϩΠɾϦϦʔεํ๏͕Α͘෼͔Βͳ͍

  38. ͢΂͖͜ͱʹूத͍ͨ͠ • ࣮૷͢Δػೳʹूத͍ͨ͠ • ࢓༷ɺϩδοΫɺઃܭ ʹूத͍ͨ͠

  39. ࣗಈԽͰ͖Δͱ͜Ζ͸ࣗಈԽ • Ϗϧυɺςετͷ֬ೝ => ࣗಈԽ • ίʔυϑΥʔϚοτͷ֬ೝ => ࣗಈԽ •

    σϓϩΠɺϦϦʔε࡞ۀ => ࣗಈԽ
  40. Լ४උ

  41. ཧ૝Λ૝૾ • GitHub Λී௨ʹ࢖͑͹ྑ͍࢓૊Έʹ͍ͨ͠ • ಛผͳϧʔϧ͸࡞Γͨ͘ͳ͍ • ආ͚͍ͨϧʔϧͷྫ • ʮXXϥϕϧ͕͋Δ࣌͸YY͢Δʯ

    • ʮϦϦʔεͨ͘͠ͳ͍࣌͸ ZZ ͢Δʯ
  42. τϦΨʔ͸։ൃखॱʹؚΊΔ • ॲཧΛ࣮ߦ͢ΔτϦΨʔ͸ҎԼʹݶఆ • GitHubʹϓογϡ • ϓϧϦΫΤετ࡞੒ • ϓϧϦΫΤετΛϚʔδ •

    ͜ͷτϦΨʔͰରԠͰ͖ͳ͍͜ͱ͸΍Βͳ͍ • => ෳࡶͳӡ༻ϧʔϧΛ࡞Βͳ͍
  43. ࣗಈԽ͠΍͍͢ϒϥϯνߏ੒ • ϒϥϯνߏ੒͸୯७ͳํ͕ࣗಈԽ͠΍͍͢ • ࣍ͷ4छྨʹͳΔΑ͏ϧʔϧΛม͑ͨ • feature • develop •

    staging • master
  44. ۩ମྫ

  45. feature ͷ Workflow Lint Unit Test

  46. reviewdog ͰࣗಈϨϏϡʔ

  47. featureͷUT͸ܰΊʹ

  48. UT͸ฒྻͰ࣮ߦͰ͖ΔΑ͏ʹ

  49. ΧόϨοδ݁Ռ͕
 ෼ׂ͞Ε͍ͯΔͷͰϚʔδ͢Δ

  50. develop ͷ Workflow Unit Test Deploy ϓϧϦΫ࡞੒

  51. Deploy ։ൃ؀ڥʹσϓϩΠ ex) eb deploy

  52. ϓϧϦΫΤετࣗಈ࡞੒ɾߋ৽

  53. ϓϧϦΫͷλΠτϧ͕ॏཁ ϓϧϦΫΤετͷ
 λΠτϧ͕ॻ͔Ε͍ͯΔ

  54. ϓϧϦΫͷλΠτϧ͕ॏཁ • ϓϧϦΫͷλΠτϧ == ϦϦʔε෺ͷઆ໌จ • git log ͷ Merge

    ίϛοτ͔ΒϓϧϦΫΤετΛಛ ఆ͠ɺͦͷλΠτϧΛऔಘͯ͠࢖͍ͬͯΔ • Merge ίϛοτ͕ඞཁͳͷͰ git rebase ࣌͸஫ҙ • git rebase --preserve-merges ͠ͳ͍ͱ Merge ί ϛοτ͕ফ͑ͯ͠·͏
  55. staging / master ͸
 develop ͱ΄΅ಉ͡

  56. ࡞ͬͨ࢓૊ΈͷҰཡ • GitHubʹϓογϡ
 ɹɹ => Ϗϧυɺςετ • ϓϧϦΫΤετΛ࡞੒
 ɹɹ =>

    ίʔυϨϏϡʔ • ϓϧϦΫΤετΛϚʔδ
 ɹɹ => σϓϩΠɺϓϧϦΫ࡞੒ɾߋ৽
  57. TODO • Android ͷ PlayετΞ σϓϩΠ • GitHub ͷ Tag

    / Release ͷࣗಈ࡞੒
  58. (͓·͚) NightlyϏϧυ • CircleCI ͸ cronه๏Ͱɺ
 ࢦఆͨ͠λΠϛϯάͰࣗಈϏϧυͰ͖Δ • ௒ศར

  59. ࢖༻ྫ Ұ೔Ұճ update gems

  60. ·ͱΊ • CircleCI ͸ iOS/Android/Rails ͢΂ͯΛΧόʔ Ͱ͖Δ ※ୠ͠ iOS ͸੍ݶ͋Γ

    • GitHub Ͱී௨ʹ։ൃ͢Δ͚ͩͰྑ͍࢓૊ΈΛ ࡞ͬͨ