0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutterで作ったCIの時間が長いので改善する

Last updated at Posted at 2025-12-02

はじめに

こんにちは、エンジニアのkeitaMaxです。

前回の記事

前回FlutterでCIを作成しましたが、実行時間が長いので改善してみようと思います。

現状

スクリーンショット 2025-11-30 11.44.12.png

このようにSet up Flutter部分で5分近く時間がかかってしまっています。

actionsのymlファイルは以下です。

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'

      - 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し実行時間を確認してみましょう。

スクリーンショット 2025-11-30 11.51.23.png

このように約1分になりました!

最後に念の為cache: trueの記載を消して実行してみます。

スクリーンショット 2025-11-30 11.54.57.png

削除しても実行時間が変わりませんね。

cache: trueが効いていないように思われるかもしれませんがそうではありません。

cache: trueを戻してPushしてみてください。

スクリーンショット 2025-11-30 11.56.37.png

今度は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

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

おわりに

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

参考

次の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?