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
CIでの自動コード修正 & PR作成
Search
nanashiki
September 30, 2019
Programming
0
58
CIでの自動コード修正 & PR作成
nanashiki
September 30, 2019
Tweet
Share
More Decks by nanashiki
See All by nanashiki
UITestを活用しまだまだ不安定なSwiftUIアプリを安定的に実務運用する / iOSDC 2021
nanashiki
1
2.1k
TitechApp サークル紹介 2021
nanashiki
0
290
Other Decks in Programming
See All in Programming
個人軟體時代
ethanhuang13
0
320
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
6
2.5k
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
120
概念モデル→論理モデルで気をつけていること
sunnyone
2
230
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
1.5k
チームのテスト力を鍛える
goyoki
2
170
Laravel Boost 超入門
fire_arlo
3
220
Design Foundational Data Engineering Observability
sucitw
3
200
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
310
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
1.7k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Code Review Best Practice
trishagee
70
19k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Automating Front-end Workflow
addyosmani
1370
200k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Agile that works and the tools we love
rasmusluckow
330
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
CIでの⾃動コード修正 & PR作成 nanashiki
スタディサプリEnglishのiOSのCI検査 Unit Test スクリーンショット テスト Sourcery (コード⽣成ツール) ⽣成チェック Synx (xcodeのファイル
ソートツール) Swift Format
Synx Xcode上でのファイルの並び順を綺麗にしてくれるツール うちのプロジェクトではファイル数が多すぎて⼀回の実⾏に6,7分かかかる…
スタディサプリEnglishの開発フロー ػೳ࡞ͯ͠DPNNJUQVTI1VMM3FRVFTU࡞ $*ʹΑΔݕࠪ $*ͷΤϥʔ͕ग़ͨΒमਖ਼ $*ͱϨϏϡʔͲͪΒ0,Ͱ͋ΕϚʔδ
現在の問題点 DPNNJUQVTI ػೳ"։ൃͯ͠DPNNJUQVTI1VMM3FRVFTU࡞ $*ʹΑΔݕࠪ ͘Β͍ ػೳ#ͷ։ൃΛΊͯԿͰ$*མ͔ͪͨ$JSDMF$*Ͱ֬ೝ͠ʹ͍͘ ࣍ͷػೳ#ͷ։ൃʹҠΔ ػೳ"ͷ$*ͷνΣοΫ͕མͪΔ ࣍ͷػೳ#ͷ։ൃʹΔ͕Կ͍͔ͬͯͨΕΔ
ϒϥϯνҠಈͨ͜͠ͱʹΑͬͯ$MFBO#VJMEʹͳΔ͜ͱ ここは⾃動化できるものが ありそう ϒϥϯνΛΓସ͑ͯɺ৭ʑमਖ਼࣮ߦ
簡単に⾃動で修正できそうなCI検査 Unit Test スクリーンショット テスト Sourcery (コード⽣成ツール) ⽣成チェック Synx (xcodeのファイル
ソートツール) Swift Format
CIによる'PNBUUFSνΣοΫ u 4XJGUGPSNBUͷ࣮ߦ TXJGUGPSNBU u %JGG͕ग़͍ͯͳ͍͔νΣοΫ HJUTUBUVTQPSDFMBJO %JGG͕ग़͍ͯΕ ͦΕΛDPNNJUͯ͠QVTIͯ͠ 13ग़ͤࣗಈԽͰ͖ͦ͏
u %JGG͕͋Δ߹$*ʹΤϥʔΛग़ྗ
Fastlaneを使ったCommit と Push⼿順 ݩͷ13ͷϒϥϯνͷϒϥϯν໊ʹ A@DJ@TXJGUGPSNBUAͳͲͷTVGGJYΛ͚ͭͨͷΛ मਖ਼ϒϥϯνͷ໊લͱ͢Δ طʹಉ໊ͷमਖ਼ϒϥϯν͕͋Δ߹ ݩͷ13ͷϒϥϯνQVTI͕ෳճ͓͜ͳΕͨ߹
ݹ͍मਖ਼ϒϥϯνআ͢Δɻͦͷޙϒϥϯν࡞ɻ u 'BUTMBOFʹศརؔͳͦ͞͏ɻ4IFMMTDSJQUॻ͍ͨ มߋΛDPNNJU͢Δ u 'BUTMBOFʹศརؔͳͦ͞͏ɻ4IFMMTDSJQUΛॻ͍ͨ GPSDFQVTI u 'BUTMBOFͷQVTI@UP@HJU@SFNPUFΛ༻ 13Λ࡞Δ u 'BUTMBOF ͷDSFBUF@QVMM@SFRVFTUΛ༻
None
None
⾃動機構導⼊後 ͙͢ʹػೳ#ͷ։ൃʹΕΔ ϩʔΧϧͰͷϒϥϯνҠಈͳ͘ͳͬͨ ػೳ"։ൃͯ͠DPNNJUQVTI1VMM3FRVFTU࡞ $*ʹΑΔݕࠪ ͘Β͍ ࣗಈੜ͞Εͨ13Λ֬ೝ͠Ϛʔδ ࣍ͷػೳ#ͷ։ൃʹҠΔ 'PNBUUFSTZOYͳͲͷνΣοΫ͕མͪΔ
現在動いている⾃動修正 Swift Formatの修正 Synxの実⾏ Sourcery(コード⽣成ツール)の実⾏
None
この機構の拡張性・将来性 スクリーンショットテストの⾃動PR Build number の自動 increment NotificationServiceExtension などのバージョン修正