はじめに
こんにちは、エンジニアのkeitaMaxです。
前回の記事
前回FlutterでCIを作成しましたが、実行時間が長いので改善してみようと思います。
現状
このようにSet up Flutter部分で5分近く時間がかかってしまっています。
actionsのymlファイルは以下です。
name: Flutter CI
on: [pull_request]
jobs:
analyze_and_test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: '3.35.5'
- name: Flutter pub get
run: flutter pub get
- name: Run static analysis
run: flutter analyze
- name: Run unit tests
run: flutter test
改善
毎回 Flutter SDK 丸ごとダウンロードしているせいで結構な時間がかかってしまっています。
なので、キャッシュしておくことで軽くなるらしいです。
flutter-actionにcacheがあるのでそれをonにします。
cache: true
これで実行時間を改善することができます。
確認する
実際に動かして確認してみましょう。
変更をPRにPushし実行時間を確認してみましょう。
このように約1分になりました!
最後に念の為cache: trueの記載を消して実行してみます。
削除しても実行時間が変わりませんね。
cache: trueが効いていないように思われるかもしれませんがそうではありません。
cache: trueを戻してPushしてみてください。
今度は18sになりました。
これは1回目で5分かかったのはFlutter SDK をダウンロードしていたのが原因です。
2回目のcache: trueをした時はまだ1回目なのでキャッシュは保存できていないのでFlutter SDK をダウンロードしたが、ツールキャッシュが効いていたのでで短くなりました。
3回目のcache: trueを消したとこにより2回目のキャッシュは使用されずFlutter SDK をダウンロードしてツールキャッシュが効いていただけで、2回目と同じことをやっていたので2回目と時間が変わりませんでした、
4回目はcache: trueに戻したので2回目のキャッシュが効いてかなり短くなりました。
最終的なunittest.yml
name: Flutter CI
on: [pull_request]
jobs:
analyze_and_test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: "3.35.5"
cache: true
- name: Flutter pub get
run: flutter pub get
- name: Run static analysis
run: flutter analyze
- name: Run unit tests
run: flutter test
おわりに
この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。
最後まで読んでいただきありがとうございました!
参考
次の記事



