20191002_CircleCIMeetupFukuoka#2
by
Yohei Kawahara
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
CircleCI ݕఆ ϓϨΠόοΫ ʙ CircleCI ݕఆͷͦͷޙ ʙ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 @inokappa CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 1
Slide 2
Slide 2 text
ࣗݾհ • ͔ͬͺ (@inokappa) • גࣜձࣾ YAMAP • ΠϯϑϥΤϯδχΞͰ͢ • ࠓͷܕ, DA PUMP ͷ ISSA ͞Μ ͷΛഈआ͓ͯ͠Γ·͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 2
Slide 3
Slide 3 text
YAMAP ʹ͍ͭͯ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 3
Slide 4
Slide 4 text
YAMAP ʹ͍ͭͯ ʙΈ·Γػೳʙ1 1 ࢁͰ“ਓͱ͢Εҧ͏”͜ͱͰɺ୭͔ͷ໋Λٹ͑Δ͔͠Εͳ͍ػೳΛͭ͘Γ·ͨ͠ (https://note.yamap.com/n/ndbe23b7e7bf0) ΑΓҾ༻ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 4
Slide 5
Slide 5 text
CircleCI ͱ YAMAP • શͯͷγεςϜ͓͍ͯ, ςετσϓϩΠͰ CircleCI ͕ϑϧʹ ׆༻͞Ε͍ͯ·͢ • ࣾΤϰΝϯδΣϦετͷ @morygonzalez ͞Μ (Γ͝Μ͞ Μ) ͷೖࣾͱڞʹಋೖ͞Ε·ͨ͠ • ͕ࣗೖࣾͨ࣌͠ʹطʹ YAMAP ͷ։ൃγεςϜͷதͰ ͳͯ͘ͳΒͳ͍ଘࡏʹͳ͍ͬͯ·ͨ͠ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 5
Slide 6
Slide 6 text
CircleCI ͱࢲ • YAMAP ʹೖࣾ͢Δલ Hello World ϨϕϧͰͨ͠ • YAMAP ͷ QA ڥͷཧΛ͞Εͨ͜ͱΛػձʹ, վΊͯ CircleCI Λษڧ͢͠Α͏ʹ • ࠓͰॳ৺ऀͷ··Ͱ͕͢... CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 6
Slide 7
Slide 7 text
ͯ͞, ຊ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 7
Slide 8
Slide 8 text
CircleCI ݕఆͱ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 8
Slide 9
Slide 9 text
CircleCI ݕఆͱ (1) • CircleCI ͷεΩϧΛূ໌͢ΔՍۭͷೝఆࢼݧ੍Ͱ͢ • डݧྉແྉ (CircleCI ʹແྉϓϥϯ͕͋Γ·͢) • ͍ͭͰ, Ͳ͜Ͱ, Πϯλʔωοτ͕ແͯ͘डݧग़དྷ·͢ (CircleCI ϩʔΧϧ PC Ͱ࣮ߦग़དྷ·͢) • ӳޠ, ຊޠ, YAML Ͱडݧ͢Δ͜ͱ͕ग़དྷ·͢ (ຊޠͷυ Ωϡϝϯτ͕ॆ࣮͍ͯ͠·͢) CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 9
Slide 10
Slide 10 text
CircleCI ݕఆͱ (2)2 2 CircleCI ݕఆެࣜαΠτ (https://kentei.circleci.com/ja/ ※ ࣮ࡏ͍ͯ͠·ͤΜ) ΑΓҾ༻ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 10
Slide 11
Slide 11 text
CircleCI ݕఆͱ (3) • 1 ڃશੈքͰ 40 ਓڧ (CircleCI ͷࣾһͱಉ)3 • 2 ڃҎԼ 10 ສਓڧ (CircleCI ͷϢʔβʔͱಉ)3 3 2018 10 ݄ௐ, CircleCI ݕఆެࣜαΠτ (Ծ) ΑΓҾ༻, ͔ͳΓใ͕ݹ͍Ͱ͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 11
Slide 12
Slide 12 text
CircleCI ݕఆͱ (4) • ݕఆࢼݧͷग़ൣғ CircleCI 2.0 ͱ 2.1 CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 12
Slide 13
Slide 13 text
ͱ͍͏͜ͱͰ... ֎ෆग़ͷݕఆࢼݧରࡦ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 13
Slide 14
Slide 14 text
ҙʂʂ ͔͜͜Β֎ෆग़ͳ༰͕ଓ͖·͢ͷͰ, εϥΠυͷࣸਅࡱӨ ͓͢Δ༰ͷ SNS ͷߘʮ͝ԕྀ͠ͳ͍ͰʯԼ͍͞. ୠ͠, શͯͷ༰͕ެࣜυΩϡϝϯτΠϯλʔωοτ্ʹଘࡏ ͓ͯ͠Γ·͢ͷͰ͝ҙԼ͍͞ ! CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 14
Slide 15
Slide 15 text
CircleCI Λ࢝ΊΔ (9 ڃ) ઃ 1. ҎԼͷ ( ) ͷதʹͯ·Δݴ༿ΛຒΊͳ͍͞.4 • CircleCI Λ࢝ΊΔʹ, ( (1) ) ຢ ( (2) ) ͷΞΧϯτ͕ඞཁ ʹͳΓ·͢ • ϦϙδτϦͱ CircleCI ͷ ( (3) ) Λ࿈ܞͤ͞Δඞཁ͕͋Γ·͢ 4 (1)Github, (2)BitBucket, (3)࿈ܞ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 15
Slide 16
Slide 16 text
CircleCI Λ࢝ΊΔ (ղઆ) CircleCI Λ࢝ΊΔʹ, Github ຢ BitBucket ͷΞΧϯτ͕ඞ ཁʹͳΓ·͢ͷͰ, Github BitBucket ͷΞΧϯτऔಘͯ͠ ͓͖·͠ΐ͏. CircleCI ݕఆࢼݧΛडݧ͢Δҝʹઈରʹඞཁͳ४ උͰ͢. Εͳ͍Α͏ʹ͠·͠ΐ͏. ΞΧϯτΛऔಘͨ͠Β, ϦϙδτϦΛ CircleCI ϓϩδΣΫτͱ ࿈ܞͤ͞·͠ΐ͏. શͯͷϦϙδτϦͱϓϩδΣΫτ͕࿈ܞग़དྷ ΔͱݶΓ·ͤΜͷͰҙ͕ඞཁͰ͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 16
Slide 17
Slide 17 text
ॳΊͯͷ .circleci/config.yml (9 ڃ) ઃ 2. ҎԼ, ੈքͰ࠷γϯϓϧͳ .circleci/config.yml Ͱ͢. ( ) ͷதʹೖΔΩʔϫʔυΛ͑ͳ͍͞.5 version: ( (1) ) jobs: ( (2) ): docker: - image: docker:18.06.0-ce-git ( (3) ): - run: name: Hello world command: | echo "Hello CircleCI!!" 5 (1)2, (2)jobs, (3)steps CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 17
Slide 18
Slide 18 text
ॳΊͯͷ .circleci/config.yml (ղઆ) ϦϙδτϦʹ .circleci/config.yml ͱ͍͏ YAML ϑΥʔϚοτͷ ઃఆϑΝΠϧΛՃ͢Δඞཁ͕͋Γ·͢. ओཁͳΩʔ, ҎԼͷ ௨ΓͰ͢. • version • jobs • steps CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 18
Slide 19
Slide 19 text
ϩʔΧϧϚγϯͰϏϧυΛ࣮ߦ͢Δ (8 ڃ) ઃ 3. ઃ 2 ͷ .circleci/config.yml Λ༻͍ͯ, ϩʔΧϧϚγϯ ্ͰߏจͷνΣοΫͱϏϧυΛ࣮ߦ͠ͳ͍͞. • CircleCI Ͱ, circleci ͱ͍͏ίϚϯυϥΠϯπʔϧΛఏڙ͠ ͍ͯ·͢ • macOS Ͱ, Homebrew ΛͬͯΠϯετʔϧ͢Δͱྑ͍Ͱ ͠ΐ͏ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 19
Slide 20
Slide 20 text
ϩʔΧϧϚγϯͰϏϧυΛ࣮ߦ͢Δ (σϞ 1) • config validate ΦϓγϣϯͰߏจͷνΣοΫ $ circleci config validate Config file at .circleci/config.yml is valid. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 20
Slide 21
Slide 21 text
ϩʔΧϧϚγϯͰϏϧυΛ࣮ߦ͢Δ (σϞ 2) • local execute ΦϓγϣϯͰϏϧυΛ࣮ߦ $ circleci local execute Docker image digest: sha256:5eb8cb710920f567403cc4cbd2de16d5ab8fc9a1b4c6357d2e7137fa5f1a4f62 ====>> Spin up Environment ... தུ ... ====>> Hello world #!/bin/sh -eo pipefail echo "Hello CircleCI!!" Hello CircleCI!! Success! CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 21
Slide 22
Slide 22 text
CircleCI ͰϏϧυΛ࣮ߦ͢Δ (8 ڃ) ઃ 4. ઃ 3 Ͱ֬ೝͨ͠ .circleci/config.yml Λ༻͍ͯ, CircleCI ্ͰϏϧυΛ࣮ߦ͠ͳ͍͞. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 22
Slide 23
Slide 23 text
CircleCI ͰϏϧυΛ࣮ߦ͢Δ (ղઆ) ϦϙδτϦͱͷ࿈ܞ͕ਖ਼͘͠ߦΘΕ͍ͯΔ߹, ϦϙδτϦʹ push ͢ΔͱϏϧυ͕࣮ߦ͞Ε·͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 23
Slide 24
Slide 24 text
Ϗϧυڥʹ SSH ϩάΠϯ͢Δ (8 ڃ) ઃ 5. Ϗϧυڥʹ SSH ΛͬͯϩάΠϯ͠ͳ͍͞. ϩάΠϯ ͨ͠Β, hello.txt ͕࡞͞Ε͍ͯΔ͜ͱΛ֬ೝ͠ͳ͍͞. • Ϗϧυڥʹ SSH ϩάΠϯ͢Δ͜ͱͰ, Ϗϧυͷσόοά ͕ߦ͑·͢ • ࣄલʹ Github ্ʹ SSH ͷެ։伴Λొ͓͖ͯ͠·͠ΐ͏ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 24
Slide 25
Slide 25 text
Ϗϧυڥʹ SSH ϩάΠϯ͢Δ (8 ڃ) ࣄલʹ, .circleci/config.yml ΛҎԼͷΑ͏ʹमਖ਼͓͖ͯ͠·͢. version: 2 jobs: build: docker: - image: docker:18.06.0-ce-git steps: - run: name: Hello world command: | echo "Hello CircleCI!!" > hello.txt CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 25
Slide 26
Slide 26 text
Ϗϧυڥʹ SSH ϩάΠϯ͢Δ (σϞ) δϣϒը໘ͷ Rerun workflow ͔Β Rerun job with SSH Λબ ͯ͠δϣϒΛ࠶࣮ߦ͠·͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 26
Slide 27
Slide 27 text
Ϗϧυڥʹ SSH ϩάΠϯ͢Δ (σϞ) $ ssh -p 64536 xxx.xxx.xxx.xxx ... ུ ... ~ # ls -al total 16 drwx------ 3 root root 4096 Apr 16 22:02 . drwxr-xr-x 43 root root 4096 Apr 16 22:01 .. -rw------- 1 root root 7 Apr 16 22:02 .ash_history drwxr-xr-x 2 root root 4096 Apr 16 22:01 project ~ # cd project/ ~/project # ls hello.txt ~/project # cat hello.txt Hello CircleCI!! ~/project # CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 27
Slide 28
Slide 28 text
ͪΐͬͱϒϨΠΫ ʙᕒͷϞϊϚωʙ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 28
Slide 29
Slide 29 text
ϞϊϚω A ͞Μ ϏϏοτͷऴྃΛελοϓʹࠂ͛ΒΕͯ... CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 29
Slide 30
Slide 30 text
ϞϊϚω B ͞Μ ੈք্ͷ MC ͷҝ, υʔϋʹ౸ணͯ͠Ұݴ... CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 30
Slide 31
Slide 31 text
workflows Λ͏ (7 ڃ) ઃ 6. workflows Λͬͯ, master ϒϥϯνҎ֎Ͱ build ͕࣮ ߦ͞ΕΔΑ͏ʹ͠ͳ͍͞. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 31
Slide 32
Slide 32 text
workflows Λ͏ (ղઆ) • workflows Ͱ, ֤εςοϓΛδϣϒͱ͍͏୯ҐͰѻ͍·͢ • workflows Λ͏͜ͱͰ, ྻͳεςοϓ࣮ߦ͚ͩͰͳ͘, ݅ʹԠͯ͡δϣϒΛ࣮ߦͤ͞Δ͜ͱ͕ग़དྷ·͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 32
Slide 33
Slide 33 text
workflows Λ͏ (ղઆ) ͜Ε·Ͱͷ .circleci/config.yml ʹ workflows ͱ͍͏ηΫγϣϯ ΛՃ͠·͠ΐ͏. ... ུ ... workflows: version: 2 pr-build: jobs: - build: filters: branches: ignore: - master CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 33
Slide 34
Slide 34 text
workflows Λ͏ (ղઆ) ผͷϒϥϯνΛ্ͬͨͰ commit, push ͯ͠Έ·͠ΐ͏. (master)$ git checkout -b development/demo01 Switched to a new branch 'development/demo01' (development/demo01)$ echo 'test' >> README.md (development/demo01)$ git add README.md (development/demo01)$ git commit -m 'demo' [development/demo01 6ef698f] demo 1 file changed, 1 insertion(+) (development/demo01)$ git push -u origin development/demo01 ... Branch 'development/demo01' set up to track remote branch 'development/demo01' from 'origin'. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 34
Slide 35
Slide 35 text
workflows Λ͏ (ղઆ) development/demo01 ϒϥϯνͰ, build ͕࣮ߦ͞Ε͍ͯ· ͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 35
Slide 36
Slide 36 text
ϏϧυͷޮԽ (7 ڃ) ઃ 7. ΩϟογϡΛ༻͍ͯ, Ϗϧυ࣌ؒͷॖΛݕ౼͠ͳ͍͞. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 36
Slide 37
Slide 37 text
ϏϧυͷޮԽ (ղઆ) • save_cache εςοϓΛར༻͢Δ͜ͱͰ, ϥΠϒϥϦιʔε ίʔυͷΩϟογϡΛอ࣋ग़དྷ·͢ • restore_cache ʹͯ key Ͱࢦఆͨ͠ΩϟογϡΛ෮ݩ͠· ͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 37
Slide 38
Slide 38 text
ϏϧυͷޮԽ (ղઆ) ҎԼͷΑ͏ʹ .circleci/config.yml Λमਖ਼͠·͠ΐ͏. steps: - restore_cache: key: cache-data-{{ .Branch }} ... தུ ... echo $n >> data.txt sleep 0.3 done fi - save_cache: key: cache-data-{{ .Branch }} paths: - data.txt ... ࣍ͷϖʔδ ... CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 38
Slide 39
Slide 39 text
ϏϧυͷޮԽ (ղઆ) ҎԼͷΑ͏ʹ .circleci/config.yml Λमਖ਼͠·͠ΐ͏. ... લͷϖʔδΑΓ ... - run: name: Remove data.txt command: | rm -rf data.txt && sleep 5 && ls -al - restore_cache: key: cache-data-{{ .Branch }} - run: name: Restore data command: | cat data.txt CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 39
Slide 40
Slide 40 text
ϏϧυͷޮԽ (ղઆ) • key ʹ {{ .Branch }} {{ .Revision }} ͷςϯϓ Ϩʔτ͕ࢦఆՄೳͰ͢ • paths ʹϑΝΠϧ໊σΟϨΫτϦͷύεΛࢦఆ͠·͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 40
Slide 41
Slide 41 text
ϏϧυͷޮԽ (σϞ 1) ΩϟογϡΛࠐΜͩ͜ͱͰ, ҎԼͷΑ͏ʹॳճͷϏϧυҎ߱Ͱ ܶతʹॲཧ͕࣌ؒॖ͞Ε͍ͯ·͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 41
Slide 42
Slide 42 text
ϏϧυͷޮԽ (ࢼݧʹग़Δ) restore_cache Ͱ keys ͰෳͷΩϟογϡΩʔΛࢦఆՄೳ Ͱ͢. - restore_cache: keys: - cache-data-{{ .Branch }} - cache-data CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 42
Slide 43
Slide 43 text
ϏϧυͷޮԽ (σϞ 2) ҎԼͷΑ͏ʹ, ࢦఆͨ͠ΩʔͷΩϟογϡ͕ଘࡏ͍ͯ͠ͳ͍߹ ʹ, restore_cache εΩοϓ͞Ε, طʹΩϟογϡΩʔ͕ଘ ࡏ͍ͯ͠Δ߹ʹ save_cache εΩοϓ͞Ε·͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 43
Slide 44
Slide 44 text
ϏϧυͷޮԽ (ࢼݧʹग़Δ) ࠓͷͱ͜Ζ, ΩϟογϡΛফ͢ज़͕͋Γ·ͤΜʂ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 44
Slide 45
Slide 45 text
ςετͷޮԽ (7 ڃ) ઃ 8. ύϥϨϧςετΛར༻ͯ͠ςετ࣌ؒͷॖΛݕ౼͠ͳ ͍͞. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 45
Slide 46
Slide 46 text
ςετͷޮԽ (ղઆ) • ςετΛϑΝΠϧ୯ҐͰׂ͢Δ͜ͱͰ, ฒߦͯ͠ςετΛ࣮ ߦ͢Δ͜ͱ͕ՄೳͰ͢ • ׂ circleci ίϚϯυΛར༻͠·͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 46
Slide 47
Slide 47 text
ςετͷޮԽ (ղઆ) ҎԼͷΑ͏ʹ .circleci/config.yml ʹςετΛՃ͠·ͨ͠. test: parallelism: 2 docker: - image: docker:18.06.0-ce-git steps: - checkout - run: name: Paralell Test command: | echo $(circleci tests glob "tests/*" | circleci tests split) | xargs -n 1 sh CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 47
Slide 48
Slide 48 text
ςετͷޮԽ (ղઆ) ςετͱݴ͍ͬͯ·͕͢, ҎԼͷΑ͏ͳγϯϓϧͳγΣϧεΫϦ ϓτͰ͢. sleep 5 echo "01" CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 48
Slide 49
Slide 49 text
ςετͷޮԽ (σϞ 1) ී௨ʹςετΛ࣮ߦͨ͠߹, ҎԼͷΑ͏ʹ 27 ඵֻ͔͍ͬͯ· ͢. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 49
Slide 50
Slide 50 text
ςετͷޮԽ (σϞ 2) ύϥϨϧʹςετΛ࣮ߦͨ͠߹, ҎԼͷΑ͏ʹ 16 ඵ·Ͱʹ ॖ͍ͯ͠·͢ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 50
Slide 51
Slide 51 text
ͯ͞ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 51
Slide 52
Slide 52 text
͜͜Ͱ Ԡ༻ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 52
Slide 53
Slide 53 text
cron ͍ͨ͘... ਓྨόονॲཧ͔ΒಀΕΒΕͳ͍. scheduled-build: triggers: - schedule: cron: "0 23 * * *" # UTC Ͱࢦఆ͢Δඞཁ͕͋Δ filters: branches: only: - deployment/packer CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 53
Slide 54
Slide 54 text
sls deploy CircleCI Ͱ Serverless Framework ฏ, ྩ࢈ۀֵ໋Ͱ͢. ... - run: name: Deploy command: | serverless deploy --conceal CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 54
Slide 55
Slide 55 text
packer CircleCI Ͱ packer ͰύΧοͱ AMI ࡞. ... - run: name: build image command: packer build build.json no_output_timeout: 120m CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 55
Slide 56
Slide 56 text
EC2 ηΩϡϦςΟάϧʔϓΛ։์ (1) • CircleCI Ͱ EC2 ʹ SSH ΞΫηε͍ͨ͠߹ʹආ͚ͯ௨Εͳ ͍ • Job ͷதͰࣗલ࣮͚ͨ͠Ͳ... CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 56
Slide 57
Slide 57 text
EC2 ηΩϡϦςΟάϧʔϓΛ։์ (2) Orbs Ͱఏڙ͞Ε͍ͯͨ͜ͱΛΓ·ͨ͠. CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 57
Slide 58
Slide 58 text
EC2 ηΩϡϦςΟάϧʔϓΛ։์ (3) ͔͠͠, ԶόʔδϣϯͰ... - run: name: build specfile for awspec command: | bundle exec rake aws:security_group:build_spec when: always - run: name: check security group ingress command: | bundle exec rake aws:security_group:spec when: always CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 58
Slide 59
Slide 59 text
ϫϯόΠφϦ (1) command ࠷ߴೋߦ͘Β͍Ͱ͍͑ͨͰ͢. - run: name: execute remove old amis command: | # ݹ͍ AMI Λআ͢ΔϫϯόΠφϦίϚϯυ ./tools/amiCtrl --delete --days=3 -batch CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 59
Slide 60
Slide 60 text
ϫϯόΠφϦ (2) - run: name: execute remove old amis command: | # ͜ͷίʔυ͋͘·ͰαϯϓϧͰ͢, ಈ͖·ͤΜ AMI_ID=$(aws ec2 describe-images ....) && \ aws ec2 deregister-image --image-id ${AMI_ID} && \ aws ec2 delete-snapshot --snapshot-id ${SNAPSHOT_ID} CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 60
Slide 61
Slide 61 text
ͦΖͦΖ ͓࣌ؒͰ͢... CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 61
Slide 62
Slide 62 text
ͳͥ, CircleCI Λ͏ͷ͔ • खॱ͕ݟ͍͑ͯΔ • ࣮ߦ݁Ռ͕ݟ͍͑ͯΔ • ͕ͯ͢ YAML ͰޠΕΔΜ͡Όͳ͍͔ͬͯࢥ͑Δ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 62
Slide 63
Slide 63 text
Let's CircleCI ݕఆ • CircleCI ݕఆͰࢼݧʹඞͣग़ͦ͏ͳϙΠϯτΛૡ͍ఠΜͰ͓ ͠·ͨ͠ • ·ͩ, CircleCI Λ৮ͬͨ͜ͱ͕ແ͍ํੋඇαΠϯΞοϓͯ͠ ͬͯΈ·͠ΐ͏ • υΩϡϝϯτେมॆ࣮͍ͯ͠ΔͷͰ, υΩϡϝϯτੋඇ, Λ௨͠·͠ΐ͏ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 63
Slide 64
Slide 64 text
͍͞͝ʹ • CircleCI ৮͍ͬͯΔͱ, ͳΜͰ CircleCI Ͱॲཧ͍ͨ͠ͱ͍͏ ཉ͕༙͍͖ͯ·͢ΑͶ • Բͤͣ৮Γଓ͚Δ͜ͱ͕ঢڃ (্ୡ) ͷۙಓͩͱࢥ͍·͢ • օ͞Μੋඇ, ݕఆΛडݧ͠·͠ΐ͏ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 64
Slide 65
Slide 65 text
͓ΘΓ CircleCI ϢʔβʔίϛϡχςΟϛʔτΞοϓ #2 65