Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub ActionsでWebDriverどこまでやるの?
Search
Toda Hiroshi
October 16, 2019
Programming
1
650
GitHub ActionsでWebDriverどこまでやるの?
GitHub ActionsでWebDriverどこまでやるの? @ GitHub Actions Meetup Tokyo β 2019年10月16日
Toda Hiroshi
October 16, 2019
Tweet
Share
More Decks by Toda Hiroshi
See All by Toda Hiroshi
OpenAPI(Swagger)によるWebDriverの記述と、この星の上のさまざまな物への実験的なWebDriver実装
hiroshitoda
0
1.3k
Other Decks in Programming
See All in Programming
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
私の後悔をAWS DMSで解決した話
hiramax
4
210
はじめてのMaterial3 Expressive
ym223
2
830
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
690
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
160
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
330
OSS開発者という働き方
andpad
5
1.7k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
520
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.8k
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
220
rage against annotate_predecessor
junk0612
0
170
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
530
Why Our Code Smells
bkeepers
PRO
339
57k
What's in a price? How to price your products and services
michaelherold
246
12k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
4 Signs Your Business is Dying
shpigford
184
22k
The Invisible Side of Design
smashingmag
301
51k
Balancing Empowerment & Direction
lara
3
620
Docker and Python
trallard
46
3.6k
Transcript
(JU)VC"DUJPOTͰ 8FC%SJWFSͲ͜·ͰΔͷʁ ݄ ށా
ࣗݾհ • ށా ʢͱͩ ͻΖ͠ʣ !IJSPTIJUPEB • ੜ·Ε ࡀ •
σΟʔϓϥʔχϯάͱ"QQJVNΛར༻ͨ͠ ςετࣗಈԽ4BB4ʮ.BHJD1PEʯӡӦʹɺ ͔Βͪ·ͪ·ɺ͔Βͦͦ͜͜ ࢀՃ͍ͯ͠·͢ɻ • ʹʮ4FMFOJVN࣮ફೖʯ ʹ ʮΤΩεύʔτ͕ڭ͑Δ4FMFOJVN࠷લઢʯ ڞஶ͠·ͨ͠ɻͥͻ͓ങ͍ٻΊ͍ͩ͘͞ʂ
˞.BHJD1PEͷ͝հ˞ • ʮ.BHJD1PEʯɺಋೖͷෑډ͕ߴ͘ͳΓ͕ͪͳ ωΠςΟϒΞϓϦͷࣗಈςετΛ ͔ΜͨΜʹ࢝ΊΒΕΔςετࢧԉαʔϏεͰ͢ɻ • 8FC%SJWFS"1*ʹ४ڌͨ͠ωΠςΟϒΞϓϦࣗಈૢ࡞πʔϧ ʮ"QQJVNʯΛར༻͍ͯ͠·͢ɻ • σΟʔϓϥʔχϯάΛ׆༻ͨ͠ΞϓϦ6*ͷࣗಈൃݟ
8FC(6*্Ͱͷςετ߲࡞ػೳΈ߹Θͤͯɺ ςετ߲දΛ࡞ΔΑ͏ͳ؆୯ͳૢ࡞Ͱ ࣗಈςετͷ͘͠ΈΛ࡞Ε·͢ɻ • ωΠςΟϒΞϓϦ։ൃͰΑ͘ΘΕΔ ଞͷαʔϏεͱͷ࿈ܞॆ࣮͖ͯ͠·ͨ͠ɻ • IUUQTNBHJDQPEDPN
ࠓ͢͜ͱ ͿͬͪΌ͚ͳΜͰͰ͖ͦ͏ͳ(JU)VC"DUJPOTɺ ࣮ࡍͲ͜·Ͱ͑Δ͔Λ 8FC%SJWFSઢʢಛʹ"QQJVNઢʣͰௐͨͷͰ ·ͱΊ͓ͯ͠͠·͢ɻ (JU)VC"DUJPOT͕ಈ͘ج൫ (JU)VC"DUJPOTͰ࠷ॳ͔Β͑ΔιϑτΣΞ
(JU)VC"DUJPOT্Ͱͷ"QQJVNͷ׆༻ͱ /FTUFE7JSUVBMJ[BUJPOͷน
(JU)VC"DUJPOT͕ಈ͘ج൫
(JU)VC"DUJPOT͕ಈ͘ج൫ • ϔϧϓΛಡΈ·͠ΐ͏ɻ • l(JU)VC"DUJPOTͷԾڥz IUUQTIFMQHJUIVCDPNKBBSUJDMFTWJSUVBMFOWJSPONFOUTGPSHJUIVCBDUJPOT • ށా͞ΜΔؾ͋ΔΜͰ͔͢ʁʁʁ
(JU)VC"DUJPOT͕ಈ͘ج൫ • l-JOVY͓Αͼ8JOEPXTͷ(JU)VC"DUJPOTԾڥɺ (JU)VC"DUJPOTSVOOFS͕Πϯετʔϧ͞Εͨ .JDSPTPGU"[VSFͷ4UBOEBSE@%4@WԾϚγϯ্ʹ ϗετ͞Ε͍ͯ·͢ɻz • W͡Όͳ͍ͷͰ/FTUFE7JSUVBMJ[BUJPOʹରԠ͍ͯ͠·ͤΜɻ • ͭ·Γɺ͜ͷڥ্ʹԾϚγϯ࡞Ε·ͤΜɻ
• lNBD04Ծڥͷϗετʹ.BD4UBEJVNΛ༻͍ͯ͠·͢ɻz • NBD04ͷ*BB4ͷதͰɺݱ࣌Ͱ͍ͪΜϚγͳͱ͜ΖͰ͢ɻ • .BD࣮ػΛିͯ͘͠Ε·͢ʢCBSFNFUBMͬͯ͜ͱͰ͢Ͷʣɻ • ͭ·Γɺ͜ͷڥ্ʹԾϚγϯΛ࡞Ε·͢ɻ
(JU)VC"DUJPOT͕ಈ͘ج൫ ϔϧϓʹࡌ͍ͬͯͳ͍ਂ۷Γใ • -JOVYɾ8JOEPXTڥͷϦιʔεׂΓͯ υΩϡϝϯτهࡌͷͱ͓Γ W$16ɺ(#ϝϞϦʔ Ͱ͢ɻ • NBD04ڥʁʁʁ ௐͯΈ·ͨ͠ʂ
• Ձ֨දʹ lDPSFT (#zͱ͋Δ͕ʜʜ • $16*OUFM9FPO&W!()[ DPSFUISFBE • ϝϞϦʔ(# • ͜Εͬͯچ.BD1SPͰʁʁʁ ←ͦΕΰϛശ
NBD04ڥ͓ಘ͔ʁ • ݱঢ়ɺ.BD4UBEJVN8FC͔Βਃ͠ࠐΉͱ .BD.JOJͷ݄୯Ґ՝ۚϓϥϯ͔͠બ·ͤΜɻ • .BD1SPΛΘͤͯΒ͑Δ͏͑ʹ୯Ґ՝ۚͷ (JU)VC"DUJPOT͓ಘͳͷͰʁ • ͨ·ͨ·ށా͕Ҿ͍ͨͷ͕.BD1SP͚͔ͩͬͨͩ͠Ε·ͤΜɻ •
ϕʔλظؒऴΘͬͨΒࠓޙͲ͏ͳΔͷ͔ͳɻɻɻ ←͜͏͍͏ͭʹϚϯτ͞ΕͯΔͷ͔ͳ……
(JU)VC"DUJPOTͰ ࠷ॳ͔Β͑ΔιϑτΣΞ
Ծڥ্ʹͱͱೖ͍ͬͯΔιϑτΣΞ • ϔϧϓΛಡΈ·͠ΐ͏ɻ • l(JU)VC"DUJPOTͷԾڥͰͷιϑτΣΞz IUUQTIFMQHJUIVCDPNKBBSUJDMFTTPGUXBSFJOWJSUVBMFOWJSPONFOUTGPS HJUIVCBDUJPOT • ށా͞ΜΔؾʢ
Ծڥ্ʹͱͱೖ͍ͬͯΔιϑτΣΞ "QQJVNઢ • Ͳͷڥʹ"OESPJE4%,͕ೖ͍ͬͯ·͢ɻ • NBD04Πϯελϯεʹ ෳόʔδϣϯͷ9DPEF͕Πϯετʔϧ͞Ε͍ͯͯ δϣϒ࣮ߦ࣌ͷΓସ͑༰қʹՄೳʹͳ͍ͬͯ·͢ɻ • YDWFSTJPOͱ͍͏ఆ൪πʔϧͰ࣮ݱ͞Ε͍ͯ·͢ɻ
• ݱ࣌Ͱ9DPEFϕʔλ൛͕ೖ͍ͬͯ·͢ɻ
Ծڥ্ʹͱͱೖ͍ͬͯΔιϑτΣΞ ͪΐͬͱҧ͏ઢ • Ͳͷڥʹ /&5DPSF4%,͕ೖ͍ͬͯͨΓɺ +%,͕ "[VM;VMV0QFO+%,ͩͬͨΓɺ ΄ΜͷΓͱ.JDSPTPGUͷϙϦγʔΛײͤ͡͞·͢ɻ • NBD04ڥʹ7JTVBM4UVEJPGPS.BDೖ͍ͬͯͯ
9BNBSJOͷϏϧυ͕ՄೳͳΑ͏Ͱ͢ɻ • ΩϟογϡࡁΈͷ%PDLFSίϯςφʔΠϝʔδ͕ ͍͔ͭ͘อ࣋͞Ε͍ͯ·͢ɻ ͜ͷΩϟογϡ͕ར͘δϣϒͳΒߴʹॲཧͰ͖ΔͰ ͠ΐ͏ɻ
(JU)VC"DUJPOT্Ͱͷ "QQJVNͷར༻ͱ /FTUFE7JSUVBMJ[BUJPOͷน
(JU)VC"DUJPOT্Ͱͷ"QQJVN • ࠓͷΠϕϯτʹ ʮ͜͏ͨ͠Β4FMFOJVN"QQJVNಈ͍ͨΑʯ ٧Ί߹ΘͤͰ࣋ͬͯདྷΕྑ͍͔ͳʙͱ ҆қʹߟ͑ͯͨΒ࣍ʑͱઌΛӽ͞Εͯ͠·ͬͨΞΞΞΞ • ݄ • (JU)VC"DUJPOTͰ
8JOEPXT*&ͱ .BD4BGBSJΛ TFMFOJVNXFCESJWFS Ͱಈ͔͢ IUUQTRJJUBDPNNJ[DIJJUFNTDEGCBGB • ݄ • (JUIVC "DUJPOT "QQJVNͰJ1IPOF4JNVMBUPSΛಈ͔͢ IUUQTRJJUBDPNUBLFZBYJUFNTDEB • ݄ • (JUIVC "DUJPOT "QQJVNͰ"OESPJE&NVMBUPSΛಈ͔͢ IUUQTRJJUBDPNUBLFZBYJUFNTCGCBBEE
"OESPJEͱNBD04 • "OESPJE4%, (JU)VC"DUJPOTͷͯ͢ͷڥʹೖͬͯ·͕͢ɺ "OESPJEΤϛϡϨʔλʔΛೖΕͯಈ͔ͤΔͷ ݱ࣌ͰNBD04ڥ͚ͩͰ͢ɻ • 8JOEPXT-JOVYڥ͕ /FTUFE7JSUVBMJ[BUJPOʹରԠ͍ͯ͠ͳ͍͔ΒͰ͢Ͷɻ •
݁Ռɺ J04γϛϡϨʔλʔ"OESPJEΤϛϡϨʔλʔಈ͘ ൺֱత҆ՁͳCBSFNFUBMڥͱͯ͠ɺ NBD04ڥͷଘࡏײ͕େ͖͘ͳ͍ͬͯ·͢ɻ
(JU)VC"DUJPOTͱ%PDLFS • (JU)VC"DUJPOT TFSWJDFT ͱ͔ VTFT ͱ͔Ͱ ެ։%PDLFSΠϝʔδΛར༻Ͱ͖Δ͡Όͳ͍Ͱ͔͢ɺ ͋ͷลΓ׆༻ͯ͠"QQJVNྑ͍ײ͡ʹͳΒͳ͍ͷʁʁ
8FC%SJWFSͱ%PDLFS • ͔ͨ͠ʹɺ 4FMFOJVNͳͲͷ8FC%SJWFSΫϥΠΞϯτΛར༻ͨ͠ 8FCϒϥβʔૢ࡞ɾςετͷࣗಈԽͰ %PDLFSͷར༻ͱͯ༗ޮͰ͢ɻ • ౾ࣝ4FMFOJVNެࣜͷ%PDLFSΠϝʔδ͔Β͋Γ·͢ɻ • $JSDMF$*ͷ
DJSDMFDJOPEFMBUFTUCSPXTFST ͳΜ͔ (JU)VC"DUJPOTͰ ΘΓͱؾܰʹ͑ΔΑͶɺ ͱ͍͏هࣄ͕Εͷ࣌Ͱެ։͞Ε͍ͯ·͢ɻ IUUQTRJJUBDPNPLJUBOJUFNTCBEDEB
"QQJVNͱ%PDLFS • ͦͷ͍Ͱɺ"QQJVNͰ%PDLFSͬͯ ྑ͍ײ͡ʹ͍ͨ͠ͳɺͱͳΔͷਓɺ͔͠͠ɻ • ʮ"OESPJEڥΛ%PDLFSίϯςφʔʹͨ͠ʯ ͱ͍͏ͷͷଟ͘ɺ͋͘·Ͱ "OESPJEͷެࣜΤϛϡϨʔλʔڥΛ %PDLFSίϯςφʔʹͨ͠ͷͰ͢ɻ /FTUFE7JSUVBMJ[BUJPOඇରԠͷ-JOVYԾڥͰ
ಈ͔͢͜ͱ͕Ͱ͖·ͤΜɻ೦ɻɻɻ • "QQJVNNBD04ڥΛ͍͍͖ͯ͠·͠ΐ͏ʂ
ʲࢀߟʳ"OESPJEΤϛϡϨʔλʔೖΓͷ%PDLFSίϯςφʔ • CVEUNPEPDLFSBOESPJE • ʹϝϧΧϦͰͷେنͳར༻ࣄྫ͕ެ։͞Ε·ͨ͠ɻ • IUUQTUFDINFSDBSJDPNFOUSZ • ίϯςφαΠζʙ(#͘Β͍ɺ (JU)VC"DUJPOT্Ͱ͘Β͍ͰQVMMͰ͖·͢ɻ
• "1*όʔδϣϯ͝ͱʹΠϝʔδ͕͋Γɺ࣮༻ੑ͕ߴ͍Ͱ͢ɻ • CJUSJTFJPEPDLFSBOESPJE • ΈΜͳେ͖#JUSJTFͰ࣮ࡍʹΘΕ͍ͯΔ"OESPJEίϯςφʔɻ • Ί΅͍͠"1*όʔδϣϯશ෦ೖΓʹ͍ͯ͠ΔͷͰΫιॏ͍ɺ ίϯςφαΠζʙ(#͘Β͍ɻ ΩϟογϡͰ͖ͳ͍ڥͰ࣮༻ʹ͑·ͤΜɻ
ʲࢀߟʳ"OESPJEΤϛϡϨʔλʔΛΘͳ͍ίϯςφʔ • BOCPY IUUQTBOCPYJP • "OESPJEΛ-JOVY্ͷίϯςφʔ Ћͱͯ͠ಈ͔͢͜ͱΛ ඪͱͨ͠ϓϩδΣΫτͰ͢ɻ • ίϯςφʔٕज़ʹ-9$Λ࠾༻͍ͯ͠·͢ɻ
• ݪཧ্ɺ/FTUFE7JSUVBMJ[BUJPOඇରԠͷԾϚγϯ্Ͱ ܰշʹಈ࡞͠·͢ɻ (JU)VC"DUJPOTͰ-JOVYΠϯελϯε্Ͱ͑Δ͔ʜʜʁ • ͷ"84SF*OWFOUͰ൸࿐͞Εͨ /%,ʹґଘͨ͠ΞϓϦΛ"Πϯελϯε্Ͱࣗಈૢ࡞͢ΔσϞͰ ج൫ͱͯ͠ΘΕ͍ͯͨΑ͏Ͱ͢ɻ • "QQJVN͔Βૢ࡞Ͱ͖·͕͢ෆ҆ఆɻɻɻ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ