Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

ࢲ͸୭ʁ 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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Git ʁͦΜͳ΋ͷɺͳ͍Α

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

CI ʁͦΜͳ΋ͷɺͳ͍Α

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Ϗϧυςετʁͳ͍Α

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

Test Coverage ......

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

σϓϩΠΛ͢Δ 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 ഑෍͢ΔͨΊʹϚχϑΣετॺ໊ ~ ղಡ݁Ռ ~ ม਺͍ͬͺ͍͋ΔΜ͕ͩʁʁ

Slide 60

Slide 60 text

σϓϩΠΛ͢Δ 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 ഑෍͢ΔͨΊʹϚχϑΣετॺ໊ ~ ղಡ݁Ռ ~ ม਺͍ͬͺ͍͋ΔΜ͕ͩʁʁ σϓϩΠ׬શཧղʂ ʢଟ෼ʣ

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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ʣ σϓϩΠΛ൒ࣗಈԽ͢Δ

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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 Λมߋ

Slide 78

Slide 78 text

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%

Slide 79

Slide 79 text

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ϑΝΠϧ)

Slide 80

Slide 80 text

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 ......

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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 !!!!

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

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