Slide 1

Slide 1 text

CIでの⾃動コード修正 & PR作成 nanashiki

Slide 2

Slide 2 text

スタディサプリEnglishのiOSのCI検査 Unit Test スクリーンショット テスト Sourcery (コード⽣成ツール) ⽣成チェック Synx (xcodeのファイル ソートツール) Swift Format

Slide 3

Slide 3 text

Synx Xcode上でのファイルの並び順を綺麗にしてくれるツール うちのプロジェクトではファイル数が多すぎて⼀回の実⾏に6,7分かかかる…

Slide 4

Slide 4 text

スタディサプリEnglishの開発フロー ػೳ࡞੒ͯ͠DPNNJUQVTI1VMM3FRVFTU࡞੒ $*ʹΑΔݕࠪ $*ͷΤϥʔ͕ग़ͨΒमਖ਼ $*ͱϨϏϡʔͲͪΒ΋0,Ͱ͋Ε͹Ϛʔδ

Slide 5

Slide 5 text

現在の問題点 DPNNJUQVTI ػೳ"։ൃͯ͠DPNNJUQVTI1VMM3FRVFTU࡞੒ $*ʹΑΔݕࠪ ෼͘Β͍ ػೳ#ͷ։ൃΛ΍ΊͯԿͰ$*མ͔ͪͨ$JSDMF$*Ͱ֬ೝ͠ʹ͍͘ ࣍ͷػೳ#ͷ։ൃʹҠΔ ػೳ"ͷ$*ͷνΣοΫ͕མͪΔ ࣍ͷػೳ#ͷ։ൃʹ໭Δ͕Կ΍͍͔ͬͯͨ๨ΕΔ ϒϥϯνҠಈͨ͜͠ͱʹΑͬͯ$MFBO#VJMEʹͳΔ͜ͱ΋ ここは⾃動化できるものが ありそう ϒϥϯνΛ੾Γସ͑ͯɺ৭ʑमਖ਼΍࣮ߦ

Slide 6

Slide 6 text

簡単に⾃動で修正できそうなCI検査 Unit Test スクリーンショット テスト Sourcery (コード⽣成ツール) ⽣成チェック Synx (xcodeのファイル ソートツール) Swift Format

Slide 7

Slide 7 text

CIによる'PNBUUFSνΣοΫ u 4XJGUGPSNBUͷ࣮ߦ TXJGUGPSNBU u %JGG͕ग़͍ͯͳ͍͔νΣοΫ HJUTUBUVTQPSDFMBJO %JGG͕ग़͍ͯΕ͹ ͦΕΛDPNNJUͯ͠QVTIͯ͠ 13ग़ͤ͹ࣗಈԽͰ͖ͦ͏ u %JGG͕͋Δ৔߹$*ʹΤϥʔΛग़ྗ

Slide 8

Slide 8 text

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Λ࢖༻

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

⾃動機構導⼊後 ͙͢ʹػೳ#ͷ։ൃʹ໭ΕΔ ϩʔΧϧͰͷϒϥϯνҠಈ΋ͳ͘ͳͬͨ ػೳ"։ൃͯ͠DPNNJUQVTI1VMM3FRVFTU࡞੒ $*ʹΑΔݕࠪ ෼͘Β͍ ࣗಈੜ੒͞Εͨ13Λ֬ೝ͠Ϛʔδ ࣍ͷػೳ#ͷ։ൃʹҠΔ 'PNBUUFS΍TZOYͳͲͷνΣοΫ͕མͪΔ

Slide 12

Slide 12 text

現在動いている⾃動修正 Swift Formatの修正 Synxの実⾏ Sourcery(コード⽣成ツール)の実⾏

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

この機構の拡張性・将来性 スクリーンショットテストの⾃動PR Build number の自動 increment NotificationServiceExtension などのバージョン修正