Slide 1

Slide 1 text

2022-11-02 ࣗಈԽେ޷͖ΤϯδχΞLTձ - vol.9 ͸ͯͳϒϩά࡞੒͔Β౤ߘ·ͰΛ GitHub ActionsͰࣗಈԽ͢Δ M-Yamashita

Slide 2

Slide 2 text

• ࢁԼ խਓ • όοΫΤϯυΤϯδχΞ • ॴଐ: גࣜձࣾΞΠΩϡʔϒυγεςϜζ • GitHub Actions ͕޷͖ • GitHub: @M-Yamashita01 • Twitter: @M_Yamashii ࣗݾ঺հ

Slide 3

Slide 3 text

• ຖ݄ͷৼΓฦΓΛ͸ͯͳϒϩάʹࣥචத എܠ

Slide 4

Slide 4 text

ϒϩά࡞੒ͷաఔͰຖճൃੜ͢Δ୯७࡞ۀ

Slide 5

Slide 5 text

ੵ΋ΔετϨε

Slide 6

Slide 6 text

• ৽ن౤ߘ࣌͸ɺաڈͷϒϩάͷ߲໨Λίϐϖͯ͠৽͘͠จষΛهࡌ • VSCode্ͰจষΛtextlintͰνΣοΫ͠ɺ͸ͯͳϒϩάʹసه • VSCodeͱ͸ͯͳϒϩάͷߦ͖དྷ͕ਏ͍ ࠔͬͨ͜ͱ

Slide 7

Slide 7 text

Ͳ͏ͳͬͨΒخ͍͠ʁ

Slide 8

Slide 8 text

Ͳ͏ͳͬͨΒخ͍͠ʁ • จষΛॻ͘πʔϧ͸VSCode͚ͩʹ͍ͨ͠ • ͸ͯͳϒϩάΛ৮ΒͣʹVSCodeͱGitHubͰԼॻ͖͔Βެ։·Ͱ׬͍݁ͤͨ͞ • ։ൃͱಉ͡Α͏ʹGitHub্ͷϒϥϯν࡞੒΍Pull RequestͰ͸ͯͳϒϩάͷ
 ࡞੒ɺߋ৽Λ͍ͨ͠

Slide 9

Slide 9 text

ԿΛ૊Έ߹ΘͤΔ͔ʁ

Slide 10

Slide 10 text

GitHubͷΠϕϯττϦΨʔʹ͸ GitHub Actions͕૬ੑ͕ྑ͍

Slide 11

Slide 11 text

໰୊͸ ͸ͯͳϒϩάͷૢ࡞

Slide 12

Slide 12 text

͸ͯͳϒϩάAtomPub https://developer.hatena.ne.jp/ja/documents/blog/apis/atom

Slide 13

Slide 13 text

͸ͯͳϒϩάAtomPub ϒϩάͷࢀরɺ࡞੒ɺެ։ɺ࡟আΛ REST APIͰՄೳ

Slide 14

Slide 14 text

͜ͷREST APIΛ࢖͏OSS͸ͳ͍͔ʁ

Slide 15

Slide 15 text

blogsync

Slide 16

Slide 16 text

• ͸ͯͳBlog༻ͷCLIΫϥΠΞϯτ blogsync https://github.com/x-motemen/blogsync

Slide 17

Slide 17 text

࢖͑ͦ͏ʂ

Slide 18

Slide 18 text

ϫʔΫϑϩʔΛ࡞ΔͨΊʹ blogsyncͷ࢓༷Λཧղ͢Δ

Slide 19

Slide 19 text

ཧղ͢Δ࢓༷͸ ϒϩάͷϑΥʔϚοτɺ౤ߘํ๏ɺߋ৽ํ๏ͷ3ͭ

Slide 20

Slide 20 text

ϒϩάͷϑΥʔϚοτ

Slide 21

Slide 21 text

blogsyncͷ࢓༷ʢϒϩάͷϑΥʔϚοτʣ

Slide 22

Slide 22 text

ϒϩάͷ౤ߘํ๏

Slide 23

Slide 23 text

blogsyncͷ࢓༷ʢϒϩάͷ౤ߘʣ

Slide 24

Slide 24 text

blogsyncͷ࢓༷ʢϒϩάͷ౤ߘʣ

Slide 25

Slide 25 text

• ΤϯτϦ౤ߘ͸ඪ४ೖྗ͔Β΋ड͚औΕΔ • Լॻ͖ͷςϯϓϨʔτΛdraft.mdͱ͓ͯ͘͜͠ͱͰɺҎԼίϚϯυͰ؆୯ʹϒ ϩάΛ࡞੒Ͱ͖Δ • $ blogsync post --draft xxx.hatenablog.com < draft.md blogsyncͷ࢓༷ʢϒϩάͷ౤ߘʣ

Slide 26

Slide 26 text

• blogsync post ίϚϯυΛ࣮ߦ͢ΔͱɺҎԼϑΝΠϧύεʹԼॻ͖ϒϩά͕
 ग़དྷ্͕Δ • project_root/xxx.hatenablog.com/entry/yyyy/mm/dd/hhmmss.md • ྫɿ2022/01/02 03:04:05ʹίϚϯυΛ࣮ߦͨ͠৔߹ͷϒϩάͷϑΝΠϧύε • project_root/xxx.hatenablog.com/entry/2022/01/02/030405.md blogsyncͷ࢓༷ʢϒϩάͷ౤ߘʣ

Slide 27

Slide 27 text

ϒϩάͷߋ৽ํ๏

Slide 28

Slide 28 text

blogsyncͷ࢓༷ʢϒϩάͷߋ৽ʣ

Slide 29

Slide 29 text

• PushίϚϯυͰ͸ͯͳϒϩάͷԼॻ͖Λߋ৽Ͱ͖Δ • ͨͩ͠ߋ৽ޙͷهࣄ͸جຊతʹ৽͘͠࡞੒͞Εͯ͠·͏ blogsyncͷ࢓༷ʢϒϩάͷߋ৽ʣ

Slide 30

Slide 30 text

Ͳ͏͍͏͜ͱʁ

Slide 31

Slide 31 text

• ϒϩάͷϑΝΠϧύε • project_root/xxx.hatenablog.com/entry/2022/01/02/030405.md • ͜ͷϒϩάΛฤू͠ɺཌ೔blogsync push͢Δͱɺಉ͡಺༰Λ࣋ͭ৽͍͠ϒϩ ά͕ग़དྷ্͕Δ • project_root/xxx.hatenablog.com/entry/2022/01/02/030405.md • project_root/xxx.hatenablog.com/entry/2022/01/03/040506.md blogsyncͷ࢓༷ʢϒϩάͷߋ৽ʣ

Slide 32

Slide 32 text

ϫʔΫϑϩʔΛ࡞Δ্Ͱ ஌͓ͬͯ͘΂͖blogsyncͷ࢓༷͸͜͜·Ͱ

Slide 33

Slide 33 text

ϫʔΫϑϩʔΛ࡞Δ

Slide 34

Slide 34 text

ϫʔΫϑϩʔ • ࠔͬͨ͜ͱ΍ཧ૝ܗΛݩʹɺҎԼ3ͭͷϫʔΫϑϩʔΛ࡞੒ • ϒϥϯν࡞੒࣌ʹ͸ͯͳϒϩάͷԼॻ͖Λ࡞੒ • Pull Request࣌ʹ͸ͯͳϒϩά্ͷԼॻ͖Λߋ৽ • ϥϕϧઃఆ࣌ʹϒϩάΛެ։

Slide 35

Slide 35 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 36

Slide 36 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ 1.Create branch 2.Event trigger 3. Create blog 4. Get blog 5. Commit blog GitHub Actions

Slide 37

Slide 37 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 38

Slide 38 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 39

Slide 39 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 40

Slide 40 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 41

Slide 41 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 42

Slide 42 text

͸ͯͳϒϩάͷԼॻ͖࡞੒ ϫʔΫϑϩʔ

Slide 43

Slide 43 text

͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ

Slide 44

Slide 44 text

͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ 1.Push blog 2.Pull Request 3. Update blog GitHub Actions

Slide 45

Slide 45 text

͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ

Slide 46

Slide 46 text

͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ

Slide 47

Slide 47 text

͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ

Slide 48

Slide 48 text

͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ

Slide 49

Slide 49 text

৽نϒϩά͕࡞੒͞ΕΔ͕ ίϛοτ͠ͳ͍ ͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ

Slide 50

Slide 50 text

৽نϒϩά͕࡞੒͞ΕΔ͕ ίϛοτ͠ͳ͍ ͸ͯͳϒϩάͷԼॻ͖ߋ৽ ϫʔΫϑϩʔ →ࣥචऀ͕ಉ͡ϑΝΠϧύ εͷϒϩάͰฤू͠ଓ͚Β ΕΔΑ͏ʹ͢ΔͨΊ

Slide 51

Slide 51 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 52

Slide 52 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ 3. Update blog 1.Approve label 2.Event trigger 4. Get blog 5.Replace and Commit blog GitHub Actions

Slide 53

Slide 53 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 54

Slide 54 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 55

Slide 55 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 56

Slide 56 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 57

Slide 57 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 58

Slide 58 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 59

Slide 59 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ ɾgitͷཤྺΛอ࣋Ͱ͖Δ ɾϒϩάެ։೔ͱGitHub্ ͷϒϩάͷ೔࣌ͷϑΝΠϧ ύε͕Ұக͢Δ

Slide 60

Slide 60 text

͸ͯͳϒϩάͷެ։ ϫʔΫϑϩʔ

Slide 61

Slide 61 text

੍ݶࣄ߲ • GitHub্ͷԼॻ͖ϒϩάʹΞοϓϩʔυͨ͠ը૾Λɺ͸ͯͳϒϩά΁ެ։Ͱ ͖ͳ͍ • ͸ͯͳϒϩά্Ͱ௚઀ฤूͨ͠৔߹ɺGitHub্ͷϒϩάͱϚοϐϯάͰ͖ͳ ͍

Slide 62

Slide 62 text

·ͱΊ • GitHub ActionsͱblogsyncΛ࢖༻ͯ͠ɺ͸ͯͳϒϩάͷهࣄ࡞੒ɺߋ৽ɺެ։ ΛࣗಈԽͨ͠ • ੍ݶࣄ߲͸͋Δ΋ͷͷɺ୯७Խ࡞ۀΛޮ཰ԽͰ͖ͨ

Slide 63

Slide 63 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ