Slide 1

Slide 1 text

CI/CDπʔϧൺֱͯ͠Έͨ

Slide 2

Slide 2 text

ࣗݾ঺հ גࣜձࣾϥϯόʔϛϧ ߕ൹ᠳ໵ɹ@shonari123 ܦྺ • [ઐ໳ֶߍ]ϠΫβͷΑ͏ͳԸࢣʹγΰ͔ΕΔ • [ब৬]”ྑ͍”اۀʹब৬͢Δ͕਺ϲ݄ͰࣙΊͯχʔτ΁ • [࠶ब৬]ࠓͷձࣾʹब৬ ࠷ۙ࢖͏ٕज़ • Java, PHP, MySQL, Vue.js, Firebase

Slide 3

Slide 3 text

CI/CDͬͯͳʹʁ

Slide 4

Slide 4 text

CI/CDͱ͸ ʮCIʯͱ͸ʮContinuous IntegrationʢܧଓతΠϯςάϨʔγϣϯʣʯͷུͰɺιϑ τ΢ΣΞ։ൃʹ͓͚ΔϏϧυ΍ςετΛࣗಈԽ͠ɺܧଓతʹߦ͏Ξϓϩʔνͷ͜ͱ Ͱ͢ɻ ʮCDʯͱ͸ʮContinuous DeliveryʢܧଓతσϦόϦʔʣʯͷུͰɺCIʹΑͬͯςε τ͞ΕͨίʔυͷϚʔδ΍ɺຊ൪؀ڥ޲͚ͷϏϧυͷ࡞੒Λࣗಈతʹߦ͍ɺຊ൪؀ ڥʹσϓϩΠ͕Մೳͳঢ়ଶΛ੔͑Δϓϩηεͷ͜ͱͰ͢ɻ ·ͨʮCDʯ͸ʮContinuous DeploymentʢܧଓతσϓϩΠʣʯͷུͱͯ͠࢖ΘΕΔ ͜ͱ΋͋Γ·͢ɻܧଓతσϓϩΠ͸ܧଓతσϦόϦʔͱΑ͘ࣅͨ֓೦Ͱ͕͢ɺܧଓ తσϦόϦʔ͕σϓϩΠՄೳͳঢ়ଶΛ४උ͢Δ͚ͩͳͷʹର͠ɺܧଓతσϓϩΠ͸ ࣮ࡍʹຊ൪؀ڥ΁ͷσϓϩΠ·ͰΛߦ͏఺͕ҟͳΓ·͢ɻ ͜ͷΑ͏ͳϏϧυɺςετɺσϓϩΠΛࣗಈԽ͠ɺܧଓతʹߦ͏ख๏ͷ͜ͱΛɺ͋ ΘͤͯʮCI/CDʯͱݺͼ·͢ɻ χϑΫϥʰʮCI/CDʯͱ͸ʱ(https://pfs.nifcloud.com/navi/words/ci_cd.htm : 2019/07/04)

Slide 5

Slide 5 text

CI/CDͱ͸ CI: ςετ΍ϏϧυΛࣗಈͰߦ͏͜ͱ CD: CI͕OKͩͬͨΒࣗಈͰσϓϩΠ ͢Δ͜ͱ

Slide 6

Slide 6 text

GitϗεςΟϯάαʔϏε Push Pull Request CI/CDπʔϧ Push, Pull RequestΛݕ஌ ςετɾϏϧυΛ࣮ߦ ςετɾϏϧυ͕ ௨ͬͨΒσϓϩΠ

Slide 7

Slide 7 text

CI/CDͷྲྀΕ Init Test Build Deploy checkoutͨ͠Γ yarn installͨ͠Γ ςετͱϏϧυΛฒྻʹ࣮ߦ masterϒϥϯνͷ࣌ͷΈ શ෦௨ͬͨΒσϓϩΠ

Slide 8

Slide 8 text

ൺֱ͢ΔCI/CDπʔϧ •Bitbucket Pipelines •GitLab CI/CD •Circle CI

Slide 9

Slide 9 text

Bitbucket Pipelines

Slide 10

Slide 10 text

feature/cicd master develop merge checkout pull request pull request commit merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ

Slide 11

Slide 11 text

ઃఆ ʮEnable PipelinesʯΛOnʹ͢Δ ϓϩδΣΫτͷϧʔτσΟϨΫτϦʹ ʮbitbucket-pipelines.ymlʯΛ࡞੒

Slide 12

Slide 12 text

yml

Slide 13

Slide 13 text

yml ؀ڥม਺ Docker Image UnitςετͱBuildΛ ฒྻʹ࣮ߦ node_modules/Λ શମͰڞ༗ લճ࣮ߦͨ࣌͠ͷ node_modules/Λίϐʔ શͯͷpull requestͰ initͱciΛ࣮ߦ cachesΛར༻͢ΔͨΊ ϩʔΧϧʹอଘ

Slide 14

Slide 14 text

ߏจνΣοΫ

Slide 15

Slide 15 text

੒ޭ

Slide 16

Slide 16 text

ࣦഊ

Slide 17

Slide 17 text

ίϛοτҰཡ

Slide 18

Slide 18 text

GitLab CI/CD

Slide 19

Slide 19 text

feature/cicd master develop merge checkout pull request pull request commit merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ

Slide 20

Slide 20 text

ઃఆ ϓϩδΣΫτͷϧʔτσΟϨΫτϦʹ ʮ.gitlab-ci.ymlʯΛ࡞੒

Slide 21

Slide 21 text

yml

Slide 22

Slide 22 text

yml Job Jobͷ࣮ߦॱ stage͕ಉ໊͡લ ͩͬͨΒฒྻʹॲཧ masterͱϓϧϦΫ࣌ͷΈ ࣮ߦ Docker Image ؀ڥม਺ node_modules/ͱdist/Λ શମͰڞ༗ લճ࣮ߦͨ࣌͠ͷ node_modules/Λίϐʔ

Slide 23

Slide 23 text

ߏจνΣοΫ

Slide 24

Slide 24 text

੒ޭ

Slide 25

Slide 25 text

ࣦഊ

Slide 26

Slide 26 text

ίϛοτҰཡ

Slide 27

Slide 27 text

Circle CI

Slide 28

Slide 28 text

feature/cicd master develop merge checkout pull request pull request commit merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ

Slide 29

Slide 29 text

feature/cicd master develop merge checkout pull request pull request commit merge ͚ͩ͜͜ νΣοΫ͢Δ CI/CD͢ΔՕॴ

Slide 30

Slide 30 text

ઃఆ Circle CIʹαΠϯΠϯ(αΠϯΞοϓ)͠Github/ BitbucketΞΧ΢ϯτͱ࿈ܞ͢Δ ϓϩδΣΫτʹʮ.circleci/config.ymlʯΛ࡞੒

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

yml

Slide 33

Slide 33 text

yml Docker Image ؀ڥม਺ node_modules/Λอଘ લճอଘͨ͠ node_modules/ಡΈࠐΈ ΧϨϯτσΟϨΫτϦΛڞ༗ ڞ༗͞ΕͨσΟϨΫτϦΛΞλον dist/Λڞ༗ master͚ͩ Ͱ࣮ߦ ׬ྃΛ଴ͭjobΛࢦఆ ಉ͡jobΛࢦఆ͢Δͱ ฒྻʹͳΔ

Slide 34

Slide 34 text

ߏจνΣοΫ

Slide 35

Slide 35 text

੒ޭ

Slide 36

Slide 36 text

ࣦഊ

Slide 37

Slide 37 text

ίϛοτҰཡ

Slide 38

Slide 38 text

Bitbucket Pipelines GitLab CI/CD Circle CI υΩϡϝϯτ ೔ຊޠ͋Γ ೉͍͠ ӳޠͷΈ ΍΍༏͍͠ ೔ຊޠ͋Γ ΍΍೉͍͠ ίϯςφ਺ ແྉ࿮ ແ੍ݶʁ ແ੍ݶʁ 1 OSSͷ৔߹: 4 Ϗϧυ࣌ؒ/݄ ແྉ࿮ 50෼/݄ 2,000෼/݄ 1,000෼/݄ Ωϟογϡ ͋Γ ͋Γ ༗ྉ Ϗϧυʹ͔͔ͬͨ࣌ؒ ໿2෼ ໿5෼30ඵ ໿3෼ ߏจνΣοΫ Validator Θ͔ΓͣΒ͍ CI Lint ΍΍Θ͔Γ΍͍͢ circleciίϚϯυ Θ͔Γ΍͍͢ ൺֱ

Slide 39

Slide 39 text

·ͱΊ • Bitbucket Pipelines • !Ϗϧυ͕Ұ൪ૣ͍ • "Ϗϧυ࣌ؒ/݄͕୹͍ʢελϯμʔυϓϥϯ: 500෼/݄ʣ • Gitlab CI • !υΩϡϝϯτ͕Θ͔Γ΍͘͢ɺϏϧυ࣌ؒ/݄͕Ұ൪ଟ͍ • "αʔόʔͷࠞΈ۩߹͕͔ͳΓӨڹ͢Δʢૣ͍࣌͸3෼ऑʣ • Circle CI • !ߏจνΣοΫ͸Ұ൪Θ͔Γ΍͍͢ • "filtersʹPull RequestΛࢦఆͰ͖ͳ͍

Slide 40

Slide 40 text

ymlΛGithubʹͯެ։தʂ https://github.com/KaiShoya/CICD-Examples