Slide 1

Slide 1 text

GitHub Actions is Fun ʹͳ͍ͬͯͬͨ࿩ 2024/06/28 Shinjuku.rb#93 ޷͖ͳ΋ͷ঺հLTେձ @hatsu_38

Slide 2

Slide 2 text

ࣗݾ঺հ • ͸ͭ͞Μ(@hatsu_38) • Ruby 5೥ • GitHub Actionsָ͍͠ • SHE Inc. • ອը📚

Slide 3

Slide 3 text

ٕज़ελοΫ • API,GraphQLαʔόʔ: Ruby on Rails - RSpec • AdminͷUI(/adminϑΥϧμ): TypeScript/Next.js - RSpec(Capybara)ͱJest • Ϣʔβʔը໘ͷUI(/frontend-nextϑΥϧμ): TypeScript/Next.js - RSpec(Capybara)ͱ Jest • CI: GitHub Actions

Slide 4

Slide 4 text

Flaky Test ͳ͍ͨ͘͠Μ͚ͩͲ…

Slide 5

Slide 5 text

CI্Ͱ͔͠ൃੜ͠ͳ͍Flakyͱૺ۰

Slide 6

Slide 6 text

Artifactsʹ͋Δ Fail࣌ͷεΫγϣΛDLͯ֬͠ೝ

Slide 7

Slide 7 text

εΫγϣݟͯ΋Θ͔ΒΜ🤯

Slide 8

Slide 8 text

ͦ΋ͦ΋֬ೝ͕໘౗😵💫 Artifactsʹ͋Δ Fail࣌ͷεΫγϣΛDLͯ֬͠ೝ…

Slide 9

Slide 9 text

͔ͯCI΋௕͍🥱

Slide 10

Slide 10 text

GitHub Actions΍Ζ͏

Slide 11

Slide 11 text

Allure Report • ςετ݁ՌΛྑ͍ײ͡ʹϨϙʔτ͢Δ΍ͭ • ςετͷ਺ • ΧόϨοδ • ςετ࣌ؒ • ςετ݁Ռཤྺ • εΫγϣͱ͔΋ඥ෇͚ΒΕΔ

Slide 12

Slide 12 text

Allure Report • bundle exec rspec —format AllureRspecFormatter • ςετͷ৘ใΛjsonʹग़ྗ • allure generate allure_results/* -o tmp/allure_report • ςετ݁ՌΛHTMLʹม׵ • ϓϧϦΫΤετຖʹςετ݁ՌͷHTMLΛVercelʹσϓϩΠ • ςετࣦഊ࣌ʹ͸VercelͷURLΛBot͕ίϝϯτͰڭ͑ͯ͘ΕΔ

Slide 13

Slide 13 text

PRຖʹςετ݁ՌΛVercelʹσϓϩΠ

Slide 14

Slide 14 text

ςετࣦഊ࣌ʹ͸VercelͷURLΛBot͕ίϝϯτ

Slide 15

Slide 15 text

ͦ΋ͦ΋֬ೝ͕໘౗😵💫 Artifactsʹ͋Δ Fail࣌ͷεΫγϣΛDLͯ֬͠ೝ

Slide 16

Slide 16 text

Bot͕ڭ͑ͯ͘ΕΔURLΛ֬ೝ✨

Slide 17

Slide 17 text

εΫγϣݟͯ΋Θ͔ΒΜ🤯

Slide 18

Slide 18 text

capybara-playwright-driver • playwrightͱ͍͏ςετϑϨʔϜϫʔΫΛcapybara͔Β࢖͑Δ • εΫγϣ͚ͩ͡Όͳ͘ςετ࣌ͷಈը͕ݟΒΕΔ • ։ൃऀπʔϧʹࡌͬͯΔΑ͏ͳωοτϫʔΫͱ͔΋ݟΒΕΔ • Allure Report্ͰݟΒΕΔ

Slide 19

Slide 19 text

rails 7.1 support playwright driver

Slide 20

Slide 20 text

ಈը͕ݟΒΕΔ

Slide 21

Slide 21 text

ωοτϫʔΫτϨʔε͕ݟΒΕΔ

Slide 22

Slide 22 text

εΫγϣݟͯ΋Θ͔ΒΜ🤯

Slide 23

Slide 23 text

ಈըͱωοτϫʔΫτϨʔε Λݟͯղܾ✨

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

next build͕௕͍ • Ϣʔβʔը໘: next buildʹ10෼ → e2eςετ10෼(20ฒྻ) • Adminը໘: next buildʹ5෼ → e2eςετ5෼(15ฒྻ)

Slide 26

Slide 26 text

next build࣌ؒΛݮΒͦ͏

Slide 27

Slide 27 text

next buildʹ Ωϟογϡ͕࢖ΘΕ͍ͯͳ͍

Slide 28

Slide 28 text

next buildʹΩϟογϡ͕࢖ΘΕ͍ͯͳ͍ • .next/cacheΛGitHub ActionsͷΩϟογϡʹอଘͯ͠Build࣌ʹར༻ • APIͷมߋͷΈͰϑϩϯτʹมߋͳ͍৔߹͸ɺBuild͠ͳ͍͍ͯ͘ • buildͰੜ੒͞ΕΔ.next/ΛCache͔ΒRestoreͯ͠࠶ར༻

Slide 29

Slide 29 text

݁Ռ #VJME࣌ؒ -JLFT "ENJO ZBSOMPDLʹมߋ͋Δ৔߹ NT N ZBSOMPDLʹมߋͳ͠ ϑϩϯτʹมߋ͸͋Γ NT NT มߋແ͠ T T

Slide 30

Slide 30 text

#VJME࣌ؒ -JLFT "ENJO ZBSOMPDLʹมߋ͋Δ৔߹ NT N ZBSOMPDLʹมߋͳ͠ ϑϩϯτʹมߋ͸͋Γ NT NT มߋແ͠ T T ݁Ռ 1/2 1/18 1/2 1/17

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Ωϟογϡར༻ͯ࣌ؒ͠Λ1/2ʹ✨

Slide 33

Slide 33 text

GitHub Actions ָ͍͠