Slide 1

Slide 1 text

2021.10.21(Thu) iOS Test TeaTime #3 @the_uhooi Firebase SDK を 手動管理したら CIビルドが になった話 分 3

Slide 2

Slide 2 text

Mobile app developer @uhooi @uhooi @the_uhooi

Slide 3

Slide 3 text

PICTURE BOOK MONSTER ORIGINAL 累計100万DL(予定) 主要画面数2

Slide 4

Slide 4 text

01 ウホーイ図鑑 の 課題

Slide 5

Slide 5 text

01 ウホーイ図鑑の課題

Slide 6

Slide 6 text

01 ウホーイ図鑑の課題

Slide 7

Slide 7 text

01 ウホーイ図鑑の課題 ・・・。

Slide 8

Slide 8 text

01 ウホーイ図鑑の課題

Slide 9

Slide 9 text

01 ウホーイ図鑑の課題

Slide 10

Slide 10 text

01 ウホーイ図鑑の課題 Swift製CLIツールのビルド Firebase SDKのビルド

Slide 11

Slide 11 text

02 Swift 製 CLIツール の ビルド時間改善

Slide 12

Slide 12 text

02 Swift 製 CLI ツールのビルド時間改善 $ swift run -c release xcodegen generate

Slide 13

Slide 13 text

02 Swift 製 CLI ツールのビルド時間改善 $ swift run -c release xcodegen generate $ swift build -c release --product xcodegen $ .build/release/xcodegen generate

Slide 14

Slide 14 text

02 Swift 製 CLI ツールのビルド時間改善 CLI_TOOLS_PACKAGE_PATH := Tools build-cli-tools: $(MAKE) build-cli-tool CLI_TOOL_NAME=xcodegen $(MAKE) build-cli-tool CLI_TOOL_NAME=mockolo build-cli-tool: swift build -c release \ --package-path ${CLI_TOOLS_PACKAGE_PATH} \ --product ${CLI_TOOL_NAME} Makefile

Slide 15

Slide 15 text

02 Swift 製 CLI ツールのビルド時間改善 - uses: actions/cache@v2 id: cli-tools-cache with: path: Tools/.build key: ${{ runner.os }}-spm-${{ hashFiles( '**/Tools/Package.resolved') }} restore-keys: ${{ runner.os }}-spm- - name: Build CLI tools managed by SwiftPM if: steps.cli-tools-cache.outputs.cache-hit != 'true' run: make build-cli-tools GitHub Actions

Slide 16

Slide 16 text

02 Swift 製 CLI ツールのビルド時間改善

Slide 17

Slide 17 text

02 Swift 製 CLI ツールのビルド時間改善 -15m 36s -16m 48s

Slide 18

Slide 18 text

02 Swift 製 CLI ツールのビルド時間改善

Slide 19

Slide 19 text

02 Swift 製 CLI ツールのビルド時間改善 -5m 57s -2m 23s -7m 56s

Slide 20

Slide 20 text

03 Firebase SDK の ビルド時間改善

Slide 21

Slide 21 text

03 Firebase SDK のビルド時間改善 ビルドしない

Slide 22

Slide 22 text

03 Firebase SDK のビルド時間改善 XCFrameworkを ダウンロードして使う

Slide 23

Slide 23 text

03 Firebase SDK のビルド時間改善

Slide 24

Slide 24 text

03 Firebase SDK のビルド時間改善 FIREBASE_VERSION := 8.8.0 download-firebase-sdk: curl -OL https://github.com/firebase/ firebase-ios-sdk/releases/ download/${FIREBASE_VERSION}/ Firebase.zip unzip -o Firebase.zip -d Frameworks/ Makefile

Slide 25

Slide 25 text

03 Firebase SDK のビルド時間改善 - name: Download Firebase SDK run: make download-firebase-sdk GitHub Actions

Slide 26

Slide 26 text

03 Firebase SDK のビルド時間改善

Slide 27

Slide 27 text

03 Firebase SDK のビルド時間改善 -17m 7s -17m 39s

Slide 28

Slide 28 text

03 Firebase SDK のビルド時間改善

Slide 29

Slide 29 text

03 Firebase SDK のビルド時間改善 -17m 3s

Slide 30

Slide 30 text

04 まとめ

Slide 31

Slide 31 text

04 まとめ After Before

Slide 32

Slide 32 text

・CI のステップを分けるとボトルネックを特定しやすい ・キャッシュやビルド済のバイナリを有効活用する 他にいい方法があれば教えてください m(_ _)m 04 まとめ

Slide 33

Slide 33 text

04 まとめ Xcode起動時のフェッチが 高速で終わる おまけ ビュン