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だけでWebフロントエンドのCI/CDをまわしてみた
Search
ozaki25
October 01, 2019
Technology
83
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHubだけでWebフロントエンドのCI/CDをまわしてみた
ozaki25
October 01, 2019
More Decks by ozaki25
See All by ozaki25
20210526_a11y.pdf
ozaki25
0
210
20210525_react_next.pdf
ozaki25
0
160
Webフロントエンドはなぜ複雑なのか
ozaki25
1
150
utility first css
ozaki25
0
120
20201225_how_to_learn_technology.pdf
ozaki25
0
190
20201124_blitz.pdf
ozaki25
0
110
20200727_liff_app.pdf
ozaki25
1
680
20200721_web_vitals.pdf
ozaki25
0
130
20200624_web_otp_api.pdf
ozaki25
1
150
Other Decks in Technology
See All in Technology
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
310
【Oracle AI Spotlight ウェビナー】AWSか、Azureか、Google Cloudか。その議論にオラクルを含める意義。
oracle4engineer
PRO
2
230
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.6k
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
530
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
160
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
570
Autonomous AI Databaseサービス・アップデート(FY27)/ adb-service-update-jp-fy27
oracle4engineer
PRO
0
110
その指示、Bobにしっかり伝わってる?初心者でも即実践できる プロンプト/コンテキスト設計のコツ
muehara
1
150
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
830
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
190
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
200
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
970
The Cult of Friendly URLs
andyhume
79
7k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Everyday Curiosity
cassininazir
0
310
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
470
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Transcript
(JU)VC͚ͩͰ$*$%Λճͯ͠ΈΔ ඌ࡚༐Ұ
ࣗݾհ w ໊લɿඌ࡚༐Ұ w ٕज़ɿ3FBDU 3FBDU/BUJWF 'JSFCBTF 18" αʔόʔϨε w
5XJUUFSɿ!P[BLJSO w (JU)VCɿP[BLJ w 2JJUBɿP[BLJ P[BLJͷ എ൪߸͔Β͖ͯ·͢ ʢ࠷ۙ͞΅Γؾຯʣ
࣍ (JU)VC"DUJPOTͱ (JU)VC"DUJPOTͷ͍ํ (JU)VC͚ͩͰ8FCϑϩϯτΤϯυͷ$*$%Λ݁ͤͯ͞Έͨ αʔόʔϨεͳ41"։ൃͰ(JU)VC"DUJPOTΛϑϧ׆༻ͯ͠Έͨ
ײ·ͱΊ
(JU)VC"DUJPOTͱ
(JU)VCͱ w ઃܭਤڞ༗αΠτ w ιʔείʔυΛϗεςΟϯάͰ͖Δ8FCαʔϏε w ΦʔϓϯιʔεͷϥΠϒϥϦݸਓϓϩδΣΫτͳͲ ෯͘ΘΕ͍ͯΔ w ྨࣅαʔϏεʹ(JUMBCɺ#JU#VDLFUͳͲ͕͋Δ
IUUQTPDUPEFYHJUIVCDPN
(JU)VC"DUJPOTͱ w (JU)VCʹՃ͞Εͨ$*αʔϏεʢݱࡏЌ൛ʣ w ϦϙδτϦͷ1VTIͳͲΛτϦΨʔʹλεΫΛ࣮ߦͰ͖Δ w λεΫԾڥͰ࣮ߦ͞ΕΔͷͰݴޠΛΘͣ ϏϧυςετͳͲԿͰ࣮ߦͰ͖Δ w ྨࣅαʔϏεʹ+FOLJOTɺ$JSDMF$*ɺ$PODPVSTFͳͲ͕͋Δ
ྉۚମܥ IUUQTHJUIVCDPKQGFBUVSFTBDUJPOT
(JU)VC"DUJPOTͷ͍ํ
(JU)VC"DUJPOTͷར༻ొ w ݱࡏਃ͠ͳ͍ͱ͑ͳ͍ IUUQTHJUIVCDPNGFBUVSFTBDUJPOTTJHOVQ
(JU)VC"DUJPOTͷར༻ొ w దͳࣗͷϦϙδτϦͰ"DUJPOTͷλϒ͕ग़͍ͯΕ0,
(JU)VC"DUJPOTͷઃఆϑΝΠϧ࡞ w HJUIVCXPSLqPXTԼʹZBNMϑΝΠϧΛ࡞͢Δ͚ͩͰ (JU)VC͕উखʹೝࣝͯ͘͠ΕΔ
ઃఆϑΝΠϧͷαϯϓϧ
ઃఆϑΝΠϧͷαϯϓϧ 8PSLqPX໊
ઃఆϑΝΠϧͷαϯϓϧ τϦΨʔ 1VTI͞Εͨ࣌ 1VMM3FRVFTUͷ࡞࣌ͳͲ ઃఆͰ͖Δ
ઃఆϑΝΠϧͷαϯϓϧ +PCͷఆٛ ෳఆٛ͢Δͱฒྻʹ࣮ߦ͞ΕΔ ͜ͷྫͰUFTUͱ͍͏KPCΛ ͻͱ͚ͭͩఆ͍ٛͯ͠Δ
ઃఆϑΝΠϧͷαϯϓϧ ڥͷઃఆ ͜ͷྫͰ6CVOUVʹ/PEFͷڥΛ ηοτΞοϓ͍ͯ͠Δ
ઃఆϑΝΠϧͷαϯϓϧ λεΫͷઃఆ ࣮ߦ͢ΔίϚϯυΛఆ͍ٛͯ͘͠ ͜ͷྫͰIFMMPͱIFMMPOPEFͷͱ͍͏ λεΫΛఆ͍ٛͯ͠Δ
ઃఆϑΝΠϧͷαϯϓϧ w ৄࡉҎԼͷϖʔδʹࡌͬͯ·͢ w IUUQTIFMQHJUIVCDPNKBBSUJDMFT XPSLqPXTZOUBYGPSHJUIVCBDUJPOT
࣮ߦ݁Ռͷαϯϓϧ
,FZใͷຒΊࠐΈ w "1*,FZͷΑ͏ͳιʔείʔυ্ʹॻ͖ͨ͘ͳ͍ใ 4FDSFUTͱͯ͠(JU)VC্ʹొ͠औΓࠐΉ͜ͱ͕Ͱ͖Δ ʮ4FUUJOHTʯʮTFDSFUTʯ͔Βొ
(JU)VC͚ͩͰ8FCϑϩϯτΤϯυͷ $*$%Λ݁ͤͯ͞Έͨ
(JU)VC"DUJPOTΛͬͯߟ͑ͨ͜ͱ w (JU)VC"DUJPOTͱ(JU)VC1BHFTΛ͑(JU)VC͚ͩͰ 8FCϑϩϯτΤϯυͷ$*$%Λ݁ͤ͞Δ͜ͱ͕Ͱ͖ͦ͏ʂ αʔόαΠυ ΫϥΠΞϯταΠυ )551௨৴ ͬͪ͜ଆͷ
Γ͍ͨ͜ͱ w 8FCϑϩϯτΤϯυͷ ։ൃ͔ΒϢʔβ͕ΞΫηε͢Δ·Ͱͷͳ͕Ε
Γ͍ͨ͜ͱ ᶃ41"ͷίʔυΛॻ͘
Γ͍ͨ͜ͱ ᶃ41"ͷίʔυΛॻ͘ ᶄϦϙδτϦʹ1VTI
Γ͍ͨ͜ͱ ᶃ41"ͷίʔυΛॻ͘ ᶄϦϙδτϦʹ1VTI ᶅςετϏϧυσϓϩΠ Α͠ͳʹͬͯ͘Ε
Γ͍ͨ͜ͱ ᶃ41"ͷίʔυΛॻ͘ ᶄϦϙδτϦʹ1VTI ᶅςετϏϧυσϓϩΠ ᶆϖʔδʹΞΫηε
(JU)VC"DUJPOTͱ(JU)VC1BHFTΛ͏ͱ
Γ͍ͨ͜ͱ ᶃ41"ͷίʔυΛॻ͘ ᶄϦϙδτϦʹ1VTI ᶆϖʔδʹΞΫηε ᶅςετϏϧυσϓϩΠ IUNM DTT KT
IUNM DTT KT $*αʔϏε ϗεςΟϯάαʔϏε
%FNP
αʔόʔϨεͳ41"։ൃͰ(JU)VC"DUJPOT Λϑϧ׆༻ͯ͠Έͨ
Α͋͘ΔΞϓϦͷߏ 3FBDU -BNCEB )551௨৴ 41" "1* ϑϩϯτ41"Ͱ"1*αʔόʔϨεͳߏ
ʢࢀߟʣ/FUMJGZͱ w ੩తϑΝΠϧͷϗεςΟϯάαʔϏε w ϢʔβΞοϓϩʔυ͞Εͨ)5.-ͳͲͷ63-ʹ ΞΫηε͢Δ͜ͱͰ8FCίϯςϯπΛӾཡͰ͖Δ w /FUMJGZ(JU)VC࿈ܞ͕ߴػೳͰઃఆͳ͠Ͱ
ϒϥϯν͝ͱͷϓϨϏϡʔڥ࡞ͳͲ͕Ͱ͖Δ
ʢࢀߟʣ4UPSZCPPLͱ w 41"ͷίϯϙʔωϯτΛ 8FC্Ͱಈ࡞Λ֬ೝͰ͖Α͏ʹ͢ΔϥΠϒϥϦ w ͲΜͳίϯϙʔωϯτ͕༻ҙ͞Ε͍ͯΔ͔ͷѲ ίϯϙʔωϯτͷ͍ํͳͲΛ֬ೝ͢Δ͜ͱ͕Ͱ͖Δ w
੩తϑΝΠϧͱͯ͠ग़ྗͰ͖ΔͨΊϗεςΟϯάαʔϏεʹ σϓϩΠ͢Δ͜ͱͰ8FC্ͰӾཡՄೳͱͳΔ
Α͋͘ΔΞϓϦͷߏ 3FBDU -BNCEB )551௨৴ 41" "1* ·ͣ ͬͪ͜ଆ͔Β
EFWϒϥϯν NBTUFSϒϥϯν ίʔυΛॻ͘ 1SFWJFXڥ ຊ൪ڥ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI ίʔυΛॻ͘ 1SFWJFXڥ ຊ൪ڥ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF 1SFWJFXڥ ຊ൪ڥ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF 1SFWJFXڥ ຊ൪ڥ
ɹɹɹςετ ɹɹɹϏϧυ ɹɹɹɹσϓϩΠ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF .FSHF 1SFWJFXڥ
ຊ൪ڥ ɹɹɹςετ ɹɹɹϏϧυ ɹɹɹɹσϓϩΠ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF .FSHF 1SFWJFXڥ
ຊ൪ڥ ɹɹɹςετ ɹɹɹϏϧυ ɹɹɹɹσϓϩΠ ɹɹɹϏϧυ ɹɹɹɹσϓϩΠ ɹɹɹɹɹ4UPSZCPPLΛ ɹɹɹϏϧυ ɹɹɹɹσϓϩΠ
%FNP
Α͋͘ΔΞϓϦͷߏ 3FBDU -BNCEB )551௨৴ 41" "1* ࣍ͬͪ͜ଆ
EFWϒϥϯν NBTUFSϒϥϯν ίʔυΛॻ͘
EFWϒϥϯν NBTUFSϒϥϯν 1VTI ίʔυΛॻ͘
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF ɹɹɹɹɹςετ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF .FSHF ɹɹɹɹɹςετ
EFWϒϥϯν NBTUFSϒϥϯν 1VTI 1VMM3FRVFTU ίʔυΛॻ͘ $SFBUF .FSHF ɹɹɹɹɹςετ
ɹɹɹϏϧυ ɹɹɹɹσϓϩΠ
%FNP
ײ·ͱΊ
(JU)VC"DUJPOTͷػೳʹ͍ͭͯ w ϥΠϒϥϦΛΩϟογϡͰ͖ͳ͍ͷ͕ඍົ w ຖճJOTUBMM͠ͳ͍ͱ͍͚ͳ͍͔Β͔͔࣌ؒΔ w εϖοΫѱ͍ͷ͔࣮ߦ͕͍ w ϩʔΧϧͰಉ͜͡ͱΛΔΑΓѹతʹ͍ w
࠷େ·Ͱฒྻ࣮ߦͰ͖Δ͔Β࣍ୈ͔ʁ w ΩϟογϡͰ͖ͳ͍ฒྻ࣮ߦͰΧόʔͰ͖Δ͔ʁ
(JU)VC"DUJPOTΛͬͯΈͯ w (JU)VCʹ1VTI͢ΔͷͨΓલͷϑϩʔͳͷͰɺ ͦͷྲྀΕͰ$*͕ճΔͷخ͍͠ w ݸਓ։ൃͰ$*Λճ͢ϋʔυϧ͕Լ͕ͬͨؾ͕͢Δ w ͪΌΜͱͨ͠ΞϓϦͰ͏ͳΒ ୯७ʹબࢶ͕૿͑ͨͷ͕خ͍͠ ༻్ʹ͋ͬͨͷΛ͍ͬͯ͘ͱྑͦ͞͏
·ͱΊ w (JU)VC"DUJPOTΛ͏ͱଞͷ$*αʔϏεͱಉ͡Ϩϕϧͷ ϫʔΫϑϩʔΛճͤΔ w ϦϙδτϦʹ(JU)VCΛ͏ͳΒͦͷதͰ$*·Ͱ ݁Ͱ͖ΔͷͰΑͦ͞͏ w ੑೳ໘ͳͲٻΊΔ໘ͰબࢶͷҰͭͱͯ͠಄ʹೖΕ͓ͯ͘ͱ Αͦ͞͏
͋Γ͕ͱ͏͍͟͝·ͨ͠