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

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

  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
  3. ͜ͷൃද͸ʁ 3 ๭ϓϩδΣΫτͷ DevOps Λվળ͢Δ·Ͱͷ࿩ ʢGit ΋ UT ΋ CI

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

    ΋ͳ͍ʣ Ωʔϫʔυ: খ͘͞ண࣮ʹਐΉ
  5. σϓϩΠࣗಈԽ·ͰͷϚΠϧετʔϯ 5 Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ

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

  7. མԼࡿ෦ୂͱͯ͠ͷϦϏϧυ 7 100%֎஫͍ͯͨ͠ϓϩμΫτΛ಺੡Խ͢Δ ‣ ϓϩδΣΫτͷϛογϣϯ blueʮC#ʁWindows FormsʁWindows ʁʯ ‣ C#

    σεΫτοϓΞϓϦʢWindows Formsʣ ͳΜͯ΋ͷ͸ଘࡏ͠ͳ͍ ‣ GitɺϢχοτςετɺ࢓༷ॻɺCI VPoE & ྺઓͷ໠ऀ & blue ‣ ։ൃʹܞΘΔΤϯδχΞ͸3໊ͷΈ
  8. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

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

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

    ʹ͋͛Δ
  12. Git؅ཧʹ͢Δ 12 GitLab ʹΤΠ΍Ͱ pushʂ VSS GitLab ໰୊: VSS ؅ཧʢVisual

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

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

    VSS ؅ཧʢVisual Studioͷιʔείʔυ؅ཧιϑτʣ ※ major version ͸ 2 ੈ୅લ جຊํ਑: աڈΛৼΓฦΒͣɺࡶʹ Git ʹ͋͛Δ Git ͕࢖͑ΔΑ͏ʹͳͬͨΑʂ
  15. Git؅ཧʹ͢Δ ~·ͱΊ~ 15 ‣ VSS ͔Β Git ؅ཧ ʹҠߦͨ͠ ‣

    ੒Ռ ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~ ‣ ❌ VSS ͷྺ࢙Λอ࣋͢Δ ‣ ⭕ ͍͑΍Ͱશ Pushʂ ‣ ❌ GitLab ͷόʔδϣϯΞοϓ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠
  16. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

  18. GitLab ͷ Version Λ͋͛Δ 18 ‣ CI ͷػೳ΍ MR ͷػೳ͕଍Γͳ͍

    ໰୊: major version ͕ 2 ੈ୅લ ‣ ͜ͷ··ϏϋΠϯυ͢Δͷ͸ϚζΠ......
  19. GitLab ͷ Version Λ͋͛Δ 19 GitLab جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ1ճʣ

    1. ૉ௚ʹ Version Λ͋͛Δ ໰୊: major version ͕ 2 ੈ୅લ
  20. GitLab ͷ Version Λ͋͛Δ 20 ※ ୭͕ɺͲ͏΍ͬͯೖΕͨͷ͔ෆ໌ ※ ڪΒ͘ΧελϚΠζͯ͋͠Δ GitLab

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

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

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

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

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

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

    Λ Push ͢Δ چ GitLab جຊํ਑: खஈ͸໰Θͣ Version Λ͋͛Δʢୈ3ճʣ ৽ GitLab 1. ৽͍͠ Version ͷ GitLab ΛݐͯΔ Push ※ CI ΍ Wiki ͳͲ͸Ҿ͖ܧ͛ͳ͍ CI ΋ Wiki ΋ͳ͍͔Βؔ܎ͳ͍ʂʂʂʂ GitLab ͷ Version ͕͋ͬͨʂ
  27. GitLab ͷ Version Λ͋͛Δ ~·ͱΊ~ 27 ‣ GitLab ͷόʔδϣϯ͕͕͋Γ։ൃ͕εϜʔζʹ ‣

    ੒Ռ ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~ ‣ ❌ GitLab Λ৽ͨͯ͘͠Δ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ❌ GitLab Λਅ໘໨ʹόʔδϣϯΞοϓ ‣ ⭕ طଘͷ GitLab ʹ Pushʂ
  28. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

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

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

    ػ͕ඞਢ
  32. CI؀ڥΛ࡞Δ ~ Runner on VM ~ 32 VM ʹ Windows

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

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

    Λ͍Εͯ GitLab Runner ཱͯΔ جຊઓུ: ԼखʹؤுΒͳ͍ vmware fusion GitLab Runner windows Excel ʹॻ͍ͯ͋Δ Windows License Key ݹ͍໰୊ DNS ղܾ͠ͳ͍໰୊ vmware fusion ?? CI ༻ͷ؀ڥ͕Ͱ͖ͨʂ
  35. CI؀ڥΛ࡞Δ ~·ͱΊ~ 35 ‣ CI ؀ڥΛ࡞ͬͨ ‣ ੒Ռ ‣ ൿ݃

    ~খ͘͞͸͡Ίͨ~ ‣ ❌ Docker on Windows ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ❌ WSL/WSL2 ‣ ⭕ Windows VM ʹ GitLab Runner ݐ଄
  36. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

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

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

  40. CIΛಈ͔͢ 40 ໰୊: Runner ͸ PowerShell ্Ͱಈ͘ Linux/Unix ͷΑ͏ͳ Bash

    ؀ڥͰಈ࡞͢ΔΘ͚Ͱ͸ͳ͍ PowerShell
  41. PowerShellͱ͸ 41 ‣ MS ͕։ൃ֦ͨ͠ுՄೳͳ CLI γΣϧ͓ΑͼεΫϦϓτݴޠ PowerShell ‣ ه๏͕ඍົʹ

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

    Bash ͱҟͳΔ ‣ GitLab CI Ͱ͸ม਺ల։ͷه๏͕ҟͳΔ < ͔ͳΓ໽հʢsed ͳͲ͕࢖͑ͳ͍ʣ എʹෲ͸୅͑ΒΕΜ.... ͓ͱͳ͘͠ॻ͜͏ GitLab Runner on PowerShell ര஀
  43. CIΛಈ͔͢ ~·ͱΊ~ 43 ‣ CI ͕ճΓ࢝Ίͨ ‣ ੒Ռ ‣ ൿ݃

    ~খ͘͞͸͡Ίͨ~ ‣ ❌ ϢχοτςετΛճ͢ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ❌ PowerShell ͔ΒҠߦ͢Δ ‣ ⭕ ϏϧυςετͷΈΛճ͢ ‣ ⭕ PowerShell Ͱಈ͔͢
  44. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

  45. Test Coverage ......

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

    Test Coverage ΄΅ 0 %
  47. VSTest NUnit XUnit ೔ͷ໨Λݟͳ͍ Test Framework ͨͪ ςετΛ࡞Δ 47 ಉ྅

    ͞΋͋ΓͳΜ Α͘ಈ͍ͯΔͳ ໰୊: Test Coverage ΄΅ 0 %
  48. ςετΛ࡞Δ 48 جຊํ਑: ৽نϩδοΫʹରͯ͠ॻ͍ͯΈΔ طଘϩδοΫ ৽نϩδοΫ VSTest NUnit XUnit

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

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

    XUnit ‣ XUnit ΍ NUnit Ͱ͸ͳ͘ γϯϓϧʹ VSTest Λ࢖͏
  51. ςετΛ࡞Δ 51 ‣ XUnit ΍ NUnit Ͱ͸ͳ͘ γϯϓϧʹ VSTest Λ࢖͏

    جຊํ਑: ৽نϩδοΫʹରͯ͠ॻ͍ͯΈΔ ‣ طଘͷϩδοΫ͸ͱΓ͋͑ͣ์ஔ طଘϩδοΫ ৽نϩδοΫ VSTest NUnit XUnit Ϣχοτςετര஀ʂ
  52. ςετΛ࡞Δ ~·ͱΊ~ 52 ‣ Ϣχοτςετ͕ճΓ࢝Ίͨ ‣ ੒Ռ ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~

    ‣ ❌ طଘͷϩδοΫͷςετΛॻ͘ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ❌ ςετϑϨʔϜϫʔΫΛબผ͢Δ ‣ ⭕ ৽نϩδοΫͷςετΛॻ͖࢝ΊΔ ‣ ⭕ ඪ४ͷςετϑϨʔϜϫʔΫΛ࢖͏
  53. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

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

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

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

  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 ΞϓϦͱͯ͠Ϗϧυ ~ ղಡ݁Ռ ~
  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 ഑෍͢ΔͨΊʹϚχϑΣετॺ໊ ~ ղಡ݁Ռ ~ ม਺͍ͬͺ͍͋ΔΜ͕ͩʁʁ
  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 ഑෍͢ΔͨΊʹϚχϑΣετॺ໊ ~ ղಡ݁Ռ ~ ม਺͍ͬͺ͍͋ΔΜ͕ͩʁʁ σϓϩΠ׬શཧղʂ ʢଟ෼ʣ
  61. σϓϩΠΛ͢Δ ~·ͱΊ~ 61 ‣ ಺੡Խ͔ͯ͠ΒॳͷσϓϩΠΛͨ͠ ‣ ੒Ռ ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~

    ‣ ❌ 1͔ΒσϓϩΠख๏Λཱ֬ͤ͞Δ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ❌ σϓϩΠεΫϦϓτΛϦϑΝΫλ ‣ ⭕ ֎஫ઌͷσϓϩΠख๏Λ౿ऻ
  62. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

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

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

  66. σϓϩΠΛ൒ࣗಈԽ͢Δ 66 ໰୊: Windows ͸ PowerShell ͕σϑΥϧτ PowerShell ࣮ߦ ShellScript

    ※ Linux ͷΑ͏ʹ؆୯ʹ ShellScript Λ࣮ߦͰ͖ͳ͍
  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ʣ σϓϩΠΛ൒ࣗಈԽ͢Δ
  68. 68 جຊํ਑: GitBash Λ࢖͏ GitBash ࣮ߦ σϓϩΠ ShellScript σϓϩΠΛ൒ࣗಈԽ͢Δ

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

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

    ίϚϯυҰൃͧΑ σϓϩΠͷ൒ࣗಈԽʂ
  71. σϓϩΠΛ൒ࣗಈԽ͢Δ ~·ͱΊ~ 71 ‣ σϓϩΠखॱΛεΫϦϓτʹͯࣗ͠ಈԽ ‣ ੒Ռ ‣ ൿ݃ ~খ͘͞͸͡Ίͨ~

    ‣ ❌ CI ʹ৐ͤΔ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ⭕ खͰ࣮ߦ͢Δ
  72. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

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

  74. CIͰσϓϩΠ͢Δ 74 ໰୊: CI ͸ PowerShell Ͱಈ࡞͢Δ Bash WindowsBatch PowerShell

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

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

    ※ ΍͍ͬͯΔ։ൃऀ͍Δͷ͔ʁͬͯϨϕϧ
  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 Λมߋ
  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%
  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ϑΝΠϧ)
  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 ......
  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
  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 !!!!
  83. CIͰσϓϩΠ͢Δ 83 جຊํ਑: GitBash Λ Executor ͱͯ͠࢖͏ ࣮ߦ σϓϩΠShellScript GitBash

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

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

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

    σϓϩΠShellScript GitBash manual job ʹΑΓ σϓϩΠ؀ڥΛબ୒ σϓϩΠ௨஌
  87. CIͰσϓϩΠ͢Δ ~·ͱΊ~ 87 ‣ CI ͰσϓϩΠͰ͖ΔΑ͏ʹͳͬͨ ‣ ੒Ռ ‣ ൿ݃

    ~খ͘͞͸͡Ίͨ~ ‣ ⭕ εΫϦϓτΛ࢖͍ճ࣮ͯ͠ߦ ‣ ࠷খ޻਺Ͱ࣮ݱͰ͖Δख๏Λ໛ࡧͨ͠ ‣ ⭕ Slack ࿈ܞ΍ͦͷଞػೳ͸ผ MR Ͱ
  88. Git؅ཧʹ͢Δ GitLabͷόʔδϣϯΞοϓ CI؀ڥΛ࡞Δ CIΛಈ͔͢ ςετΛ࡞Δ σϓϩΠΛ͢Δ σϓϩΠΛ൒ࣗಈԽ͢Δ CIͰσϓϩΠ͢Δ ·ͱΊ

  89. 89 ·ͱΊ ‣ ࠷ળखͰ͸ͳ͍͔΋͠Εͳ͍͕ɺݱ࣮ղΛ୳͍ͯ͘͠ ‣ খ͘͞Ͱ΋͍͍͔ΒɺલʹਐΜͰվળΛਐΊΔํ਑ ‣ ϦϏϧυͰॏཁͩͱײͨ͜͡ͱ ‣ ୡ੒ͨ͜͠ͱ

    ‣ Git ΍ GitLab Λ࢖ͬͨ։ൃ؀ڥΛ੔͑ͨ ‣ CI Λߏஙͯ҆͠શʹ։ൃΛਐΊΒΕΔΑ͏ʹͨ͠ ‣ σϓϩΠΛࣗಈԽͨ͠ ‣ ॳظεςʔλε ‣ GitɺCI/CD ͷ࢓૊Έ ແ͠