20191002_CircleCIMeetupFukuoka#2
by
Yohei Kawahara
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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