Save 37% off PRO during our Black Friday Sale! »

Firebase SDKを手動管理したらCIビルドが3分になった話 / reduce_ci_runtime

42a6a049ac8f5265f31858a9509217fb?s=47 uhooi
October 21, 2021

Firebase SDKを手動管理したらCIビルドが3分になった話 / reduce_ci_runtime

42a6a049ac8f5265f31858a9509217fb?s=128

uhooi

October 21, 2021
Tweet

Transcript

  1. 2021.10.21(Thu) iOS Test TeaTime #3 @the_uhooi Firebase SDK を 手動管理したら CIビルドが

    になった話 分 3
  2. Mobile app developer @uhooi @uhooi @the_uhooi

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

  4. 01 ウホーイ図鑑 の 課題

  5. 01 ウホーイ図鑑の課題

  6. 01 ウホーイ図鑑の課題

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

  8. 01 ウホーイ図鑑の課題

  9. 01 ウホーイ図鑑の課題

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

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

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

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

    generate $ swift build -c release --product xcodegen $ .build/release/xcodegen generate
  14. 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
  15. 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
  16. 02 Swift 製 CLI ツールのビルド時間改善

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

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

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

  20. 03 Firebase SDK の ビルド時間改善

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

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

  23. 03 Firebase SDK のビルド時間改善

  24. 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
  25. 03 Firebase SDK のビルド時間改善 - name: Download Firebase SDK run: make

    download-firebase-sdk GitHub Actions
  26. 03 Firebase SDK のビルド時間改善

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

  28. 03 Firebase SDK のビルド時間改善

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

  30. 04 まとめ

  31. 04 まとめ After Before

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

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