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

GitもCIもテストもないプロジェクトでデプロイを自動化するまでの道 / rebuild of DevOps

GitもCIもテストもないプロジェクトでデプロイを自動化するまでの道 / rebuild of DevOps

LT for FORCIA Meetup #1 〜DevOpsやっていかnight〜
https://forcia.connpass.com/event/165684/

Taiju Aoki

March 10, 2020
Tweet

More Decks by Taiju Aoki

Other Decks in Programming

Transcript

  1. Git΋CI΋ςετ΋ͳ͍ϓϩδΣΫτͰ
    σϓϩΠΛࣗಈԽ͢Δ·Ͱͷಓ
    @blue_1617

    View Slide

  2. ࢲ͸୭ʁ
    blue (@blue_1617)
    https://blue0513.github.io/show_room/
    2
    Rails, JavaScript, Scala etc
    ‣ ΤϜεϦʔ Ϋϥ΢υిࢠΧϧςνʔϜॴଐ
    ͨ·ʹ C# ΍ DevOps ܥ΋΍ΔΑ
    ‣ ৽ଔ 2 ೥໨ͷͽ͔ͬͽ͔ΤϯδχΞ
    ‣ OSS ׆ಈ
    slackdeck-proto : Slack ͷ TweetDeck ෩ Viewer
    phantom-inline-comment: Emacs ͷ package

    View Slide

  3. ͜ͷൃද͸ʁ 3
    ๭ϓϩδΣΫτͷ DevOps Λվળ͢Δ·Ͱͷ࿩
    ʢGit ΋ UT ΋ CI ΋ͳ͍ʣ

    View Slide

  4. ͜ͷൃද͸ʁ 4
    ๭ϓϩδΣΫτͷ DevOps Λվળ͢Δ·Ͱͷ࿩
    ʢGit ΋ UT ΋ CI ΋ͳ͍ʣ
    Ωʔϫʔυ: খ͘͞ண࣮ʹਐΉ

    View Slide

  5. σϓϩΠࣗಈԽ·ͰͷϚΠϧετʔϯ 5
    Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  6. མԼࡿ෦ୂͱͯ͠ͷϦϏϧυ 6
    VPoE
    ྺઓͷ໠ऀ
    blue
    ‣ VPoEɺྺઓͷ໠ऀɺblue ͷ3໊͕ࢠձࣾԽ΁མԼࡿ
    ‣ མԼࡿઌͷϓϩμΫτΛΨϯΨϯͱϦϏϧυ͍ͯ͘͠

    View Slide

  7. མԼࡿ෦ୂͱͯ͠ͷϦϏϧυ 7
    100%֎஫͍ͯͨ͠ϓϩμΫτΛ಺੡Խ͢Δ
    ‣ ϓϩδΣΫτͷϛογϣϯ
    blueʮC#ʁWindows FormsʁWindows ʁʯ
    ‣ C# σεΫτοϓΞϓϦʢWindows Formsʣ
    ͳΜͯ΋ͷ͸ଘࡏ͠ͳ͍
    ‣ GitɺϢχοτςετɺ࢓༷ॻɺCI
    VPoE & ྺઓͷ໠ऀ & blue
    ‣ ։ൃʹܞΘΔΤϯδχΞ͸3໊ͷΈ

    View Slide

  8. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  9. Git ʁͦΜͳ΋ͷɺͳ͍Α

    View Slide

  10. Git؅ཧʹ͢Δ
    10
    VSS
    ໰୊: VSS ؅ཧʢVisual Studioͷιʔείʔυ؅ཧιϑτʣ

    View Slide

  11. Git؅ཧʹ͢Δ
    11
    VSS
    ໰୊: VSS ؅ཧʢVisual Studioͷιʔείʔυ؅ཧιϑτʣ
    جຊํ਑: աڈΛৼΓฦΒͣɺࡶʹ Git ʹ͋͛Δ

    View Slide

  12. Git؅ཧʹ͢Δ
    12
    GitLab ʹΤΠ΍Ͱ pushʂ
    VSS GitLab
    ໰୊: VSS ؅ཧʢVisual Studioͷιʔείʔυ؅ཧιϑτʣ
    جຊํ਑: աڈΛৼΓฦΒͣɺࡶʹ Git ʹ͋͛Δ

    View Slide

  13. Git؅ཧʹ͢Δ
    13
    GitLab ʹΤΠ΍Ͱ pushʂ
    Git ͱ͍͏ϞμϯͳπʔϧΛ࢖͑ΔΑ͏ʹͳͬͨ
    VSS GitLab
    ໰୊: VSS ؅ཧʢVisual Studioͷιʔείʔυ؅ཧιϑτʣ
    ※ major version ͸ 2 ੈ୅લ
    جຊํ਑: աڈΛৼΓฦΒͣɺࡶʹ Git ʹ͋͛Δ

    View Slide

  14. Git؅ཧʹ͢Δ
    14
    GitLab ʹΤΠ΍Ͱ pushʂ
    Git ͱ͍͏ϞμϯͳπʔϧΛ࢖͑ΔΑ͏ʹͳͬͨ
    VSS GitLab
    ໰୊: VSS ؅ཧʢVisual Studioͷιʔείʔυ؅ཧιϑτʣ
    ※ major version ͸ 2 ੈ୅લ
    جຊํ਑: աڈΛৼΓฦΒͣɺࡶʹ Git ʹ͋͛Δ
    Git ͕࢖͑ΔΑ͏ʹͳͬͨΑʂ

    View Slide

  15. Git؅ཧʹ͢Δ ~·ͱΊ~ 15
    ‣ VSS ͔Β Git ؅ཧ ʹҠߦͨ͠
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ VSS ͷྺ࢙Λอ࣋͢Δ
    ‣ ⭕ ͍͑΍Ͱશ Pushʂ
    ‣ ❌ GitLab ͷόʔδϣϯΞοϓ
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠

    View Slide

  16. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  17. GitLab ݹ͍ΑͶ.......

    View Slide

  18. GitLab ͷ Version Λ͋͛Δ
    18
    ‣ CI ͷػೳ΍ MR ͷػೳ͕଍Γͳ͍
    ໰୊: major version ͕ 2 ੈ୅લ
    ‣ ͜ͷ··ϏϋΠϯυ͢Δͷ͸ϚζΠ......

    View Slide

  19. GitLab ͷ Version Λ͋͛Δ
    19
    GitLab
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    1. ૉ௚ʹ Version Λ͋͛Δ
    ໰୊: major version ͕ 2 ੈ୅લ

    View Slide

  20. GitLab ͷ Version Λ͋͛Δ
    20
    ※ ୭͕ɺͲ͏΍ͬͯೖΕͨͷ͔ෆ໌
    ※ ڪΒ͘ΧελϚΠζͯ͋͠Δ
    GitLab
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    1. ૉ௚ʹ Version Λ͋͛Δ
    ໰୊: major version ͕ 2 ੈ୅લ

    View Slide

  21. GitLab ͷ Version Λ͋͛Δ
    21
    2. چ GitLab ͔Β Project Export ͢Δ
    چ GitLab ৽ GitLab
    1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    ໰୊: major version ͕ 2 ੈ୅લ

    View Slide

  22. GitLab ͷ Version Λ͋͛Δ
    22
    2. چ GitLab ͔Β Project Export ͢Δ
    چ GitLab ৽ GitLab
    1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    ໰୊: major version ͕ 2 ੈ୅લ
    ※ major version ͕཭Ε͍ͯΔͱ Export/Import ෆՄ

    View Slide

  23. GitLab ͷ Version Λ͋͛Δ
    23
    2. چ GitLab ͔Β Project Λ Push ͢Δ
    1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    ໰୊: major version ͕ 2 ੈ୅લ
    چ GitLab ৽ GitLab
    Push

    View Slide

  24. GitLab ͷ Version Λ͋͛Δ
    24
    2. چ GitLab ͔Β Project Λ Push ͢Δ
    1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    ໰୊: major version ͕ 2 ੈ୅લ
    چ GitLab ৽ GitLab
    Push
    ※ CI ΍ Wiki ͳͲ͸Ҿ͖ܧ͛ͳ͍

    View Slide

  25. GitLab ͷ Version Λ͋͛Δ
    25
    2. چ GitLab ͔Β Project Λ Push ͢Δ
    چ GitLab ৽ GitLab
    1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ
    Push
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ
    ໰୊: major version ͕ 2 ੈ୅લ
    ※ CI ΍ Wiki ͳͲ͸Ҿ͖ܧ͛ͳ͍
    CI ΋ Wiki ΋ͳ͍͔Βؔ܎ͳ͍ʂʂʂʂ

    View Slide

  26. GitLab ͷ Version Λ͋͛Δ
    26
    2. چ GitLab ͔Β Project Λ Push ͢Δ
    چ GitLab
    جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ3ճʣ
    ৽ GitLab
    1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ
    Push
    ※ CI ΍ Wiki ͳͲ͸Ҿ͖ܧ͛ͳ͍
    CI ΋ Wiki ΋ͳ͍͔Βؔ܎ͳ͍ʂʂʂʂ
    GitLab ͷ Version ͕͋ͬͨʂ

    View Slide

  27. GitLab ͷ Version Λ͋͛Δ ~·ͱΊ~ 27
    ‣ GitLab ͷόʔδϣϯ͕͕͋Γ։ൃ͕εϜʔζʹ
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ GitLab Λ৽ͨͯ͘͠Δ
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ❌ GitLab Λਅ໘໨ʹόʔδϣϯΞοϓ
    ‣ ⭕ طଘͷ GitLab ʹ Pushʂ

    View Slide

  28. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  29. CI ʁͦΜͳ΋ͷɺͳ͍Α

    View Slide

  30. CI؀ڥΛ࡞Δ
    30
    Ṗͷ੎ྗʮGitLab Ͱಈ͔ͤ͹͍͍͡ΌΜʯ
    GitLab with Docker

    View Slide

  31. CI؀ڥΛ࡞Δ
    31
    ʢDocker ʁ ͳʹͦΕ͓͍͍͠ͷʁʣ
    ໰୊: Windows app ͷϏϧυ͸ Windows ػ͕ඞਢ

    View Slide

  32. CI؀ڥΛ࡞Δ ~ Runner on VM ~ 32
    VM ʹ Windows Λ͍Εͯ GitLab Runner ཱͯΔ
    جຊઓུ: ԼखʹؤுΒͳ͍
    vmware fusion
    GitLab Runner
    windows
    Install
    Install

    View Slide

  33. CI؀ڥΛ࡞Δ ~ Runner on VM ~ 33
    VM ʹ Windows Λ͍Εͯ GitLab Runner ཱͯΔ
    جຊઓུ: ԼखʹؤுΒͳ͍
    vmware fusion
    GitLab Runner
    windows
    Excel ʹॻ͍ͯ͋Δ Windows License Key ݹ͍໰୊
    DNS ղܾ͠ͳ͍໰୊
    vmware fusion
    Install
    Install

    View Slide

  34. CI؀ڥΛ࡞Δ ~ Runner on VM ~ 34
    VM ʹ Windows Λ͍Εͯ GitLab Runner ཱͯΔ
    جຊઓུ: ԼखʹؤுΒͳ͍
    vmware fusion
    GitLab Runner
    windows
    Excel ʹॻ͍ͯ͋Δ Windows License Key ݹ͍໰୊
    DNS ղܾ͠ͳ͍໰୊
    vmware fusion ??
    CI ༻ͷ؀ڥ͕Ͱ͖ͨʂ

    View Slide

  35. CI؀ڥΛ࡞Δ ~·ͱΊ~ 35
    ‣ CI ؀ڥΛ࡞ͬͨ
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ Docker on Windows
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ❌ WSL/WSL2
    ‣ ⭕ Windows VM ʹ GitLab Runner ݐ଄

    View Slide

  36. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  37. Ϗϧυςετʁͳ͍Α

    View Slide

  38. CIΛಈ͔͢
    38
    جຊઓུ: খ࢝͘͞ΊΔ
    ϢχοτςετͳͲ͸ߟ͑ͣɺϏϧυ͚ͩಈ͔͢
    Command Line Tool: MSBuild.exe
    $ MSBuild.exe MyProj.proj

    View Slide

  39. CIΛಈ͔͢
    39
    Ṗͷ੎ྗʮ.gitlab-ci.yml Λॻ͚ͩ͘Ͱ͠ΐʁʯ
    ΅͘ʮShellScript ͕هड़Ͱ͖ͳ͍ͧʯ
    Ṗͷ੎ྗʮ......ʁʯ
    ΅͘ʮPowerShell ͔͠αϙʔτ͞Εͯͳ͍ͧʯ
    Ṗͷ੎ྗʮPowerShell......ʁʯ

    View Slide

  40. CIΛಈ͔͢
    40
    ໰୊: Runner ͸ PowerShell ্Ͱಈ͘
    Linux/Unix ͷΑ͏ͳ Bash ؀ڥͰಈ࡞͢ΔΘ͚Ͱ͸ͳ͍
    PowerShell

    View Slide

  41. PowerShellͱ͸
    41
    ‣ MS ͕։ൃ֦ͨ͠ுՄೳͳ CLI γΣϧ͓ΑͼεΫϦϓτݴޠ
    PowerShell
    ‣ ه๏͕ඍົʹ Bash ͱҟͳΔ
    ‣ GitLab CI Ͱ͸ม਺ల։ͷه๏͕ҟͳΔ
    ← ͔ͳΓ໽հʢsed ͳͲ͕࢖͑ͳ͍ʣ

    View Slide

  42. PowerShellͱ͸
    42
    ‣ MS ͕։ൃ֦ͨ͠ுՄೳͳ CLI γΣϧ͓ΑͼεΫϦϓτݴޠ
    PowerShell
    ‣ ه๏͕ඍົʹ Bash ͱҟͳΔ
    ‣ GitLab CI Ͱ͸ม਺ల։ͷه๏͕ҟͳΔ
    < ͔ͳΓ໽հʢsed ͳͲ͕࢖͑ͳ͍ʣ
    എʹෲ͸୅͑ΒΕΜ....
    ͓ͱͳ͘͠ॻ͜͏
    GitLab Runner on PowerShell ര஀

    View Slide

  43. CIΛಈ͔͢ ~·ͱΊ~ 43
    ‣ CI ͕ճΓ࢝Ίͨ
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ ϢχοτςετΛճ͢
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ❌ PowerShell ͔ΒҠߦ͢Δ
    ‣ ⭕ ϏϧυςετͷΈΛճ͢
    ‣ ⭕ PowerShell Ͱಈ͔͢

    View Slide

  44. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  45. Test Coverage ......

    View Slide

  46. ςετΛ࡞Δ 46
    VSTest
    NUnit
    XUnit
    ೔ͷ໨Λݟͳ͍ Test Framework ͨͪ
    ໰୊: Test Coverage ΄΅ 0 %

    View Slide

  47. VSTest
    NUnit
    XUnit
    ೔ͷ໨Λݟͳ͍ Test Framework ͨͪ
    ςετΛ࡞Δ 47
    ಉ྅ ͞΋͋ΓͳΜ
    Α͘ಈ͍ͯΔͳ
    ໰୊: Test Coverage ΄΅ 0 %

    View Slide

  48. ςετΛ࡞Δ 48
    جຊํ਑: ৽نϩδοΫʹରͯ͠ॻ͍ͯΈΔ
    طଘϩδοΫ ৽نϩδοΫ
    VSTest
    NUnit
    XUnit

    View Slide

  49. ςετΛ࡞Δ 49
    جຊํ਑: ৽نϩδοΫʹରͯ͠ॻ͍ͯΈΔ
    ‣ طଘͷϩδοΫ͸ͱΓ͋͑ͣ์ஔ
    طଘϩδοΫ ৽نϩδοΫ
    VSTest
    NUnit
    XUnit

    View Slide

  50. ςετΛ࡞Δ 50
    جຊํ਑: ৽نϩδοΫʹରͯ͠ॻ͍ͯΈΔ
    ‣ طଘͷϩδοΫ͸ͱΓ͋͑ͣ์ஔ
    طଘϩδοΫ ৽نϩδοΫ
    VSTest
    NUnit
    XUnit
    ‣ XUnit ΍ NUnit Ͱ͸ͳ͘ γϯϓϧʹ VSTest Λ࢖͏

    View Slide

  51. ςετΛ࡞Δ 51
    ‣ XUnit ΍ NUnit Ͱ͸ͳ͘ γϯϓϧʹ VSTest Λ࢖͏
    جຊํ਑: ৽نϩδοΫʹରͯ͠ॻ͍ͯΈΔ
    ‣ طଘͷϩδοΫ͸ͱΓ͋͑ͣ์ஔ
    طଘϩδοΫ ৽نϩδοΫ
    VSTest
    NUnit
    XUnit
    Ϣχοτςετര஀ʂ

    View Slide

  52. ςετΛ࡞Δ ~·ͱΊ~ 52
    ‣ Ϣχοτςετ͕ճΓ࢝Ίͨ
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ طଘͷϩδοΫͷςετΛॻ͘
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ❌ ςετϑϨʔϜϫʔΫΛબผ͢Δ
    ‣ ⭕ ৽نϩδοΫͷςετΛॻ͖࢝ΊΔ
    ‣ ⭕ ඪ४ͷςετϑϨʔϜϫʔΫΛ࢖͏

    View Slide

  53. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  54. σϓϩΠʁͲ͏΍ΔΜͩΖ͏......

    View Slide

  55. σϓϩΠΛ͢Δ 55
    ໰୊: Ͳ͏΍ͬͯɺͲ͜ʹɺ୭͕σϓϩΠ͢Δͷ
    ※ ֎஫ઌͷاۀ͔͠σϓϩΠख๏Λ஌Βͳ͍ͷͰ͋Δʂ

    View Slide

  56. σϓϩΠΛ͢Δ 56
    ໰୊: Ͳ͏΍ͬͯɺͲ͜ʹɺ୭͕σϓϩΠ͢Δͷ
    ※ ֎஫ઌͷاۀ͔͠σϓϩΠख๏Λ஌Βͳ͍ͷͰ͋Δʂ
    ͓͍͓͍͓͍ɺ٧ΜͩΘ
    ֎஫ઌͱίϛϡχέʔγϣϯ
    औΖ͏
    ಉ྅

    View Slide

  57. σϓϩΠΛ͢Δ 57
    σϓϩΠͷεΫϦϓτ͋Γ·͔͢ʁ
    ͪ͜ΒʹͳΓ·͢
    ʓʓઃఆϑΝΠϧ΋΋Β͑·͔͢ʁ
    ͪ͜ΒʹͳΓ·͢
    ࡉ͔͘΍ΓͱΓΛͯ͠ঢ়گΛ೺Ѳ͢Δ

    View Slide

  58. σϓϩΠΛ͢Δ 58
    1. DBͷ UserId, Pass ΍ม਺౳Λ sed Ͱஔ׵
    2. ClickOnce ഑෍͢ΔͨΊʹϚχϑΣετॺ໊
    3. ؀ڥ͝ͱʹڞ༗σΟϨΫτϦʹखಈίϐʔ
    ‣ ؀ڥ͝ͱʹ ID, Pass ͕ҟͳΔ
    ‣ ؀ڥ਺: QAɺStagingɺPreReleaseɺProd ͷ4͕ͭ͋Δ
    ‣ BatchαʔόɺOnlineαʔόͰ ID, Pass ͕ҟͳΔ
    ‣ Mage ίϚϯυʹΑΔΞϓϦ΁ͷॺ໊͕ඞཁ
    ‣ ূ໌ॻ͕ProdͱͦΕҎ֎ͰҟͳΔ
    0. ϩʔΧϧͰ ClickOnce ΞϓϦͱͯ͠Ϗϧυ
    ~ ղಡ݁Ռ ~

    View Slide

  59. σϓϩΠΛ͢Δ 59
    3. ؀ڥ͝ͱʹڞ༗σΟϨΫτϦʹखಈίϐʔ
    ‣ ؀ڥ͝ͱʹ ID, Pass ͕ҟͳΔ
    ‣ ؀ڥ਺: QAɺStagingɺPreReleaseɺProd ͷ4͕ͭ͋Δ
    ‣ BatchαʔόɺOnlineαʔόͰ ID, Pass ͕ҟͳΔ
    ‣ Mage ίϚϯυʹΑΔΞϓϦ΁ͷॺ໊͕ඞཁ
    ‣ ূ໌ॻ͕ProdͱͦΕҎ֎ͰҟͳΔ
    sed ͸ଘࡏ͠ͳ͍ͷͰ૭ͷైͰ exe Λ DL
    ݹͷ MS ͷٕज़
    ؀ڥ͸ 4 ͭ͋Δ݅
    0. ϩʔΧϧͰ ClickOnce ΞϓϦͱͯ͠Ϗϧυ
    1. DBͷ UserId, Pass ΍ม਺౳Λ sed Ͱஔ׵
    2. ClickOnce ഑෍͢ΔͨΊʹϚχϑΣετॺ໊
    ~ ղಡ݁Ռ ~
    ม਺͍ͬͺ͍͋ΔΜ͕ͩʁʁ

    View Slide

  60. σϓϩΠΛ͢Δ 60
    3. ؀ڥ͝ͱʹڞ༗σΟϨΫτϦʹखಈίϐʔ
    ‣ ؀ڥ͝ͱʹ ID, Pass ͕ҟͳΔ
    ‣ ؀ڥ਺: QAɺStagingɺPreReleaseɺProd ͷ4͕ͭ͋Δ
    ‣ BatchαʔόɺOnlineαʔόͰ ID, Pass ͕ҟͳΔ
    ‣ Mage ίϚϯυʹΑΔΞϓϦ΁ͷॺ໊͕ඞཁ
    ‣ ূ໌ॻ͕ProdͱͦΕҎ֎ͰҟͳΔ
    sed ͸ଘࡏ͠ͳ͍ͷͰ૭ͷࣾͰ exe Λ DL
    ݹͷ MS ͷٕज़
    ؀ڥ͸ 4 ͭ͋Δ݅
    0. ϩʔΧϧͰ ClickOnce ΞϓϦͱͯ͠Ϗϧυ
    1. DBͷ UserId, Pass ΍ม਺౳Λ sed Ͱஔ׵
    2. ClickOnce ഑෍͢ΔͨΊʹϚχϑΣετॺ໊
    ~ ղಡ݁Ռ ~
    ม਺͍ͬͺ͍͋ΔΜ͕ͩʁʁ
    σϓϩΠ׬શཧղʂ
    ʢଟ෼ʣ

    View Slide

  61. σϓϩΠΛ͢Δ ~·ͱΊ~ 61
    ‣ ಺੡Խ͔ͯ͠ΒॳͷσϓϩΠΛͨ͠
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ 1͔ΒσϓϩΠख๏Λཱ֬ͤ͞Δ
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ❌ σϓϩΠεΫϦϓτΛϦϑΝΫλ
    ‣ ⭕ ֎஫ઌͷσϓϩΠख๏Λ౿ऻ

    View Slide

  62. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  63. ख࡞ۀσϓϩΠ͔.......

    View Slide

  64. σϓϩΠΛ൒ࣗಈԽ͢Δ 64
    ໰୊: खॱ͕ଟ͘ɺઈରϛεΔ
    ࣄނΔࣗ৴͕͋Δʢஅݴʣ

    View Slide

  65. σϓϩΠΛ൒ࣗಈԽ͢Δ 65
    جຊํ਑: ShellScript Խ͢Δ
    ShellScript
    Θ͕ͨ͠΍Ζ͏ʢਆʣ
    ಉ྅

    View Slide

  66. σϓϩΠΛ൒ࣗಈԽ͢Δ 66
    ໰୊: Windows ͸ PowerShell ͕σϑΥϧτ
    PowerShell
    ࣮ߦ
    ShellScript
    ※ Linux ͷΑ͏ʹ؆୯ʹ ShellScript Λ࣮ߦͰ͖ͳ͍

    View Slide

  67. 67
    جຊํ਑: GitBash Λ࢖͏
    GitBash
    Git for Windows provides a BASH emulation used to run Git from
    the command line. *NIX users should feel right at home, as the
    BASH emulation behaves just like the "git" command in LINUX
    and UNIX environments.
    Windows Ͱͷ Bash ΤϛϡϨʔλʢlike LINUX, UNIXʣ
    σϓϩΠΛ൒ࣗಈԽ͢Δ

    View Slide

  68. 68
    جຊํ਑: GitBash Λ࢖͏
    GitBash
    ࣮ߦ
    σϓϩΠ ShellScript
    σϓϩΠΛ൒ࣗಈԽ͢Δ

    View Slide

  69. 69
    جຊํ਑: GitBash Λ࢖͏
    GitBash
    ࣮ߦ
    σϓϩΠ ShellScript
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    ίϚϯυҰൃͧΑ
    ಉ྅

    View Slide

  70. ಉ྅
    70
    جຊํ਑: GitBash Λ࢖͏
    GitBash
    ࣮ߦ
    σϓϩΠ ShellScript
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    ίϚϯυҰൃͧΑ
    σϓϩΠͷ൒ࣗಈԽʂ

    View Slide

  71. σϓϩΠΛ൒ࣗಈԽ͢Δ ~·ͱΊ~ 71
    ‣ σϓϩΠखॱΛεΫϦϓτʹͯࣗ͠ಈԽ
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ❌ CI ʹ৐ͤΔ
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ⭕ खͰ࣮ߦ͢Δ

    View Slide

  72. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  73. CIͰσϓϩΠʁ౰વͰ͠ΐ

    View Slide

  74. CIͰσϓϩΠ͢Δ
    74
    ໰୊: CI ͸ PowerShell Ͱಈ࡞͢Δ
    Bash WindowsBatch PowerShell
    Win #
    https://docs.gitlab.com/runner/executors/
    GitLab Supported Executor
    ͭ·Γ......ʁ

    View Slide

  75. CIͰσϓϩΠ͢Δ
    75
    ໰୊: CI ͸ PowerShell Ͱಈ࡞͢Δ
    ※ σϓϩΠ ShellScript Λ࣮ߦͰ͖ͳ͍
    PowerShell
    ࣮ߦ
    σϓϩΠShellScript

    View Slide

  76. CIͰσϓϩΠ͢Δ
    76
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    ࣮ߦ
    σϓϩΠShellScript
    GitBash
    ※ ΍͍ͬͯΔ։ൃऀ͍Δͷ͔ʁͬͯϨϕϧ

    View Slide

  77. CIͰσϓϩΠ͢Δ
    77
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    https://stackoverflow.com/questions/41733406/windows-gitlab-ci-runner-using-bash
    [[runners]]
    ....
    shell = "powershell"
    ....
    [[runners]]
    ....
    shell = "bash"
    ....
    Step 1. GitLab Runner ͷ config Λมߋ

    View Slide

  78. CIͰσϓϩΠ͢Δ
    78
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    https://stackoverflow.com/questions/41733406/windows-gitlab-ci-runner-using-bash
    [[runners]]
    ....
    shell = "powershell"
    ....
    [[runners]]
    ....
    shell = "bash"
    ....
    Step 1. GitLab Runner ͷ config Λมߋ
    Failed to start process:
    exec: "bash": executable file not found in %PATH%

    View Slide

  79. CIͰσϓϩΠ͢Δ
    79
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    https://stackoverflow.com/questions/41733406/windows-gitlab-ci-runner-using-bash
    @"C:¥Path¥To¥ git-bash.exe " -l
    Step 2. bash.cmd Λ࡞੒ or มߋ
    bash.cmd
    @"C:¥Path¥To¥ bash.exe " -l
    bash.cmd
    (batchϑΝΠϧ)

    View Slide

  80. CIͰσϓϩΠ͢Δ
    80
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    https://stackoverflow.com/questions/41733406/windows-gitlab-ci-runner-using-bash
    @"C:¥Path¥To¥ git-bash.exe " -l
    Step 2. bash.cmd Λ࡞੒ or มߋ
    bash.cmd
    @"C:¥Path¥To¥ bash.exe " -l
    bash.cmd
    (batchϑΝΠϧ)
    ....... connection timeout ......

    View Slide

  81. CIͰσϓϩΠ͢Δ
    81
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    https://stackoverflow.com/questions/41733406/windows-gitlab-ci-runner-using-bash
    Step 3. runner Λ foreground process Ͱىಈ͢Δ
    $ gitlab-runner start
    $ gitlab-runner run

    View Slide

  82. CIͰσϓϩΠ͢Δ
    82
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    https://stackoverflow.com/questions/41733406/windows-gitlab-ci-runner-using-bash
    Step 3. runner Λ foreground process Ͱىಈ͢Δ
    $ gitlab-runner start
    $ gitlab-runner run
    CI Started !!!!

    View Slide

  83. CIͰσϓϩΠ͢Δ
    83
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    ࣮ߦ
    σϓϩΠShellScript
    GitBash

    View Slide

  84. CIͰσϓϩΠ͢Δ
    84
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    ࣮ߦ
    σϓϩΠShellScript
    GitBash
    CI ͰσϓϩΠͰ͖ͨʂ

    View Slide

  85. CIͰσϓϩΠ͢Δ ~Another 1~ 85
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    ࣮ߦ
    σϓϩΠShellScript
    GitBash
    manual job ʹΑΓ
    σϓϩΠ؀ڥΛબ୒

    View Slide

  86. CIͰσϓϩΠ͢Δ ~Another 2~ 86
    جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏
    ࣮ߦ
    σϓϩΠShellScript
    GitBash
    manual job ʹΑΓ
    σϓϩΠ؀ڥΛબ୒
    σϓϩΠ௨஌

    View Slide

  87. CIͰσϓϩΠ͢Δ ~·ͱΊ~ 87
    ‣ CI ͰσϓϩΠͰ͖ΔΑ͏ʹͳͬͨ
    ‣ ੒Ռ
    ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~
    ‣ ⭕ εΫϦϓτΛ࢖͍ճ࣮ͯ͠ߦ
    ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
    ‣ ⭕ Slack ࿈ܞ΍ͦͷଞػೳ͸ผ MR Ͱ

    View Slide

  88. Git؅ཧʹ͢Δ
    GitLabͷόʔδϣϯΞοϓ
    CI؀ڥΛ࡞Δ
    CIΛಈ͔͢
    ςετΛ࡞Δ
    σϓϩΠΛ͢Δ
    σϓϩΠΛ൒ࣗಈԽ͢Δ
    CIͰσϓϩΠ͢Δ
    ·ͱΊ

    View Slide

  89. 89
    ·ͱΊ
    ‣ ࠷ળखͰ͸ͳ͍͔΋͠Εͳ͍͕ɺݱ࣮ղΛ୳͍ͯ͘͠
    ‣ খ͘͞Ͱ΋͍͍͔ΒɺલʹਐΜͰվળΛਐΊΔํ਑
    ‣ ϦϏϧυͰॏཁͩͱײͨ͜͡ͱ
    ‣ ୡ੒ͨ͜͠ͱ
    ‣ Git ΍ GitLab Λ࢖ͬͨ։ൃ؀ڥΛ੔͑ͨ
    ‣ CI Λߏஙͯ҆͠શʹ։ൃΛਐΊΒΕΔΑ͏ʹͨ͠
    ‣ σϓϩΠΛࣗಈԽͨ͠
    ‣ ॳظεςʔλε
    ‣ GitɺCI/CD ͷ࢓૊Έ ແ͠

    View Slide