Slide 1

Slide 1 text

$JSDMF$*ϢʔβʔίϛϡχςΟϛʔτΞοϓ /VMBC*OD5PNPOBSJ/",".63" !JLJLLP  0SCT։ൃͷྲྀΕd͸͡ΊͷҰา͔Β ૊৫తʹϝϯς͍ͯͨ͘͠Ίͷ؀ڥߏங·Ͱd

Slide 2

Slide 2 text

ࣗݾ঺հ w໊લɿதଜ஌੒ !JLJLLP  wॴଐɿψʔϥϘ wਪ͠ϝϯɿͬ͞͠ʔ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

࡞ͬͨ0SC w5ZQFUBML0SC https://www.typetalk.com/ja/blog/how-to-integrate-circleci-with-typetalk-to-automatically-notify-of-build-results/

Slide 5

Slide 5 text

࡞͖͔͚ͬͨͬ wʮ$IBUXPSLʹ௨஌Λߦ͏$JSDMF$*0SC Λ࡞ͬͨʯΛݟͨ w͋ɺ͜Εಉ͡Α͏ʹνϟοτʹ௨஌͢Δ ΍ͭ࡞Εͦ͏ w(8Ͱ࡞ͬͪΌ͑  ࣮૷ɿ ೔  ݖݶपΓؚΉϦϦʔε ͷௐ੔ɿ ೔

Slide 6

Slide 6 text

ΞδΣϯμ wεςοϓɿ·ͣ͸ࣗ෼͚ͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ΋ ࢖ͬͯ΋Β͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠Δ Α͏ʹ

Slide 7

Slide 7 text

·ͣ͸ಈ࡞֬ೝ wΠϯϥΠϯ0SC͕͓खܰ w version: 2.1 orbs: example: commands: my_command: parameters: my_name: type: string steps: - run: echo "hello <>" jobs: build: docker: - image: circleci/node:4.8.2 steps: - example/my_command: my_name: ikikko ΠϯϥΠϯͰల։ ͍ͯ͠Δ෦෼

Slide 8

Slide 8 text

·ͣ͸ಈ࡞֬ೝ wखݩͰ࣮ߦ # OrbΛల։ʢ2019/05࣌఺ɺOrbΛϩʔΧϧͰ௚઀࣮ߦͰ͖ͳ͍ͨΊʣ $ circleci config process .circleci/config.yml > .circleci/processed.config.yml # ల։͞ΕͨϑΝΠϧΛϩʔΧϧͰ࣮ߦ $ circleci local execute -c .circleci/processed.config.yml ͜͜·Ͱɺ$JSDMF$*Λ௨ ৗͲ͓Γར༻͢Δ஌ࣝͩ ͚Ͱʢ΄΅ʣରԠՄೳ

Slide 9

Slide 9 text

ΞδΣϯμ wεςοϓɿ·ͣ͸ࣗ෼͚ͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ΋ ࢖ͬͯ΋Β͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠Δ Α͏ʹ

Slide 10

Slide 10 text

QVCMJTIͯ͠ΈΑ͏ wηοτΞοϓ

Slide 11

Slide 11 text

QVCMJTIͯ͠ΈΑ͏ wηοτΞοϓ # namespaceͷ࡞੒ $ circleci namespace create $ circleci namespace create nulab github nulab # orbͷ࡞੒ $ circleci orb create / $ circleci orb create nulab/typetalk-orb

Slide 12

Slide 12 text

QVCMJTIͯ͠ΈΑ͏ w1VCMJTI w # खݩͰorbͷಈ࡞֬ೝ͕औΕͨΒɺorb.ymlʹ੾Γग़͓ͯ͘͠ # ։ൃ༻όʔδϣϯͷpublish $ circleci orb publish /@ $ circleci orb publish orb.yml nulab/typetalk-orb@dev:alpha # ຊՔಇ༻όʔδϣϯͷpublish $ circleci orb publish promote /@ $ circleci orb publish promote nulab/typetalk-orb@dev:alpha major 4FN7FSʹͷͬͱ͍ͬͯΔ NBKPSNJOPSQBUDI

Slide 13

Slide 13 text

ΞδΣϯμ wεςοϓɿ·ͣ͸ࣗ෼͚ͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ΋ ࢖ͬͯ΋Β͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠ ΔΑ͏ʹ

Slide 14

Slide 14 text

ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wओʹɺେ࿮ͷྲྀΕΛ࿩͠·͢ wࡉ͔͍ઃఆ಺༰͸ɺιʔείʔυͱݟൺ ΂ͳ͕Βฉ͍͍ͯͩ͘͞ w IUUQTHJUIVCDPNOVMBCUZQFUBMLPSC

Slide 15

Slide 15 text

ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wσϑΝΫτͳύοέʔδߏ੒ w src ├── @orb.yml ├── commands │ ├── notify.yml │ └── status.yml ├── examples │ ├── notify.yml │ └── status.yml ├── executors │ └── ... └── jobs └── ... # 1ϑΝΠϧ΁ύοέʔδԽʢޙड़ͷCI/CDϫʔΫϑϩʔதͰࣗಈͰద༻͞ΕΔʣ $ circleci config pack src > orb.yml

Slide 16

Slide 16 text

ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wσϑΝΫτ ͳ$*$%ͷϫʔΫϑϩʔ w ެࣜ0SCͷ൒෼Ҏ্͕͜ͷϫʔΫϑϩʔʹԊ͍ͬͯΔ

Slide 17

Slide 17 text

ΈΜͳͰϝϯςͰ͖ΔΑ͏ʹ wσϑΝΫτ ͳ$*$%ͷϫʔΫϑϩʔ w ެࣜ0SCͷ൒෼Ҏ্͕͜ͷϫʔΫϑϩʔʹԊ͍ͬͯΔ

Slide 18

Slide 18 text

ϫʔΫϑϩʔ

Slide 19

Slide 19 text

ϫʔΫϑϩʔ

Slide 20

Slide 20 text

ϫʔΫϑϩʔ

Slide 21

Slide 21 text

ϫʔΫϑϩʔ

Slide 22

Slide 22 text

ࢀߟυΩϡϝϯτ w $JSDMF$*0SCT։ൃ׬શΨΠυ೥౓൛ʛ UJNBLJOʛOPUF w ༗ྉOPUF͚ͩͲɺ͘͢͝Α͘·ͱ·͍ͬͯΔɻ ίʔυ௥͏ͷ͕େมͳΒɺ໎Θͣ՝ۚ͠Α͏ w :`trigger-integration-workflow`ͷ`cleanup- tags: true`ΦϓγϣϯͰɺUBHΛஞ࣍੔ཧͰ͖Δ w :`test-in-builds`Λ࢖Θͣͱ΋ɺDPOpHZNM಺Ͱ΂ͨ ॻ͖ͯ͠΋Αͦ͞͏

Slide 23

Slide 23 text

ࢀߟυΩϡϝϯτ w $SFBUJOHBVUPNBUFECVJME UFTU BOEEFQMPZ XPSLqPXTGPSPSCT QBSU$JSDMF$*#MPH w ͜ͷϫʔΫϑϩʔΛ͸͡Ίɺ0SC࡞੒Λิॿ͢Δ 0SC PSCUPPMTPSC Λ࡞ͬͨਓ͕ॻ͍ͨϒϩά w ӳޠ͕ۤ͡Όͳ͚Ε͹ɺͪ͜ΒͰ΋

Slide 24

Slide 24 text

ΞδΣϯμ wεςοϓɿ·ͣ͸ࣗ෼͚ͩͰಈ࡞֬ೝ wεςοϓɿQVCMJTIͯ͠ɺଞͷਓʹ΋ ࢖ͬͯ΋Β͓͏ wεςοϓɿΈΜͳͰϝϯς͍͚ͯ͠Δ Α͏ʹ

Slide 25

Slide 25 text

ॴײ wɿࣗ෼Ҏ֎ͷਓ΋৮ΔՄೳੑ͕͋Δϓ ϩδΣΫτʹɺಛʹ༗ޮ w ݸਓϓϩδΣΫτͰ͸ͳ͍ɺձࣾ૊৫ͷ0SCͳͲ w ܰඍͳमਖ਼ʹ͍ͭͯ͸ɺ(JU)VC্Ͱ13ग़ͯ͠ Ϛʔδ͢Δ͚ͩͰे෼ରԠՄೳ w ʢ஍ຯʹ೴಺ϝϞϦ࢖͏ʣϦϦʔε൪߸ͷ෇༩΋ Φʔτ࠾൪

Slide 26

Slide 26 text

ॴײ wɿࣗ෼Ҏ֎ͷਓ΋৮ΔՄೳੑ͕͋Δϓ ϩδΣΫτʹɺಛʹ༗ޮ w ௨ৗͳΒɺ(JU)VCͷPXOFSͰͳ͍ͱຊՔಇ༻όʔ δϣϯ͸QVCMJTIͰ͖ͳ͍͕ w PXOFSݖݶͷUPLFOΛ$JSDMF$*্ʹຒΊࠐΜͰ͓͚ ΔͷͰ w13ΛϚʔδͰ͖Δਓ͸୭Ͱ΋QVCMJTIՄೳʹ

Slide 27

Slide 27 text

ॴײ wར༻ऀͷ੠ʢ$JSDMF$*ॳΊͯͷਓʣ

Slide 28

Slide 28 text

ॴײ wɿϫʔΫϑϩʔ͕ͪΐͬͱෳࡶʜ w ϫʔΫϑϩʔ͕ͭʹ෼͔ΕͯͯɺͦΕΛͭͳ͙ͷ ʹ(JUͷUBHΛ࢖͍ͬͯͯɺ௚ײతʹ෼͔ΓͮΒ͍ w ಉ͡Α͏ͳهड़͕ෳ਺͋ͬͯɺ৑௕

Slide 29

Slide 29 text

ॴײ wɿ(JUͷϦϦʔεͱ0SCͷόʔδϣϯͷ ඥ͚͕ͮ෼͔ΓͮΒ͍ w ҰԠɺ(JUͷλά෇͚͸͞ΕΔͷͰɺϦϦʔεϖʔ δ͔Β௥͏͜ͱ͸Ͱ͖Δ

Slide 30

Slide 30 text

 0SCࣗ਎ͷ$*$%Λ੔͑ͯ ΈΜͳͰ0SCΛ৮͍ͬͯ͜͏