Flutter + GitHub Actions で flutter analyze に失敗したときの対処法

エラー内容

GitHub Actions 上で flutter analyze コマンドを実行すると、以下のようなエラーが発生し、 action の実行に失敗してしまう(exit code 1)。

Analyzing xxxxx...                                          

  error • The named parameter 'visualDensity' isn't defined • lib/main.dart:14:9 • undefined_named_parameter
  error • Undefined name 'VisualDensity' • lib/main.dart:14:24 • undefined_identifier

ローカル環境では flutter analyze してもエラーは発生しない。

結論

subosito/flutter-action の channel を beta にしたら解決した。エラー発生時、ここは stable にしていました。

      - uses: subosito/flutter-action@v1
        with:
          channel: 'beta' # これが正解

2020/5/1 追記

少し原因など調べたので追記しておきます。

原因

ローカル環境と、 subosito/flutter-action の channel が一致していませんでした。(そりゃエラーにもなるよな、というところ……とほほ)

ローカル環境の flutter channel の確認は flutter channel コマンドでおこないます。

% flutter channel
Flutter channels:
* beta
  dev
  master
  stable

ちょっと記憶にないのですが、私は channel を beta に 設定していたようです。なので、GitHub Actions の設定も beta にしておかないとエラーとなってしまうのですね。

原因がわかったところで、正しい対処

私の場合、beta の機能をガンガン攻めて使っていきたいというわけでもないので、ローカル環境、GitHub Actions の設定ともに stable channel に合わせておくのが良さそうです。

ということで、ローカルと GitHub Actions の設定を stable channel を向ける作業をしていきます。

channel の切り替え

% flutter channel stable 

upgrade

% flutter upgrade

静的解析

% flutter analyze

先述の visualDensity の部分など、いくつかソースコード中でエラーが出たので、それを適切な形に編集しました。

subosito/flutter-action のバージョン設定の書き換え

      - uses: subosito/flutter-action@v1
        with:
          channel: 'stable' # ここを変更

これで、ローカル環境、GitHub Actions の設定ともに stable channel を向いた状態で正しく動くようになりました。お粗末さまでした。

参考

Flutter 現在のchannelの確認方法と切替え方法、おまけにupgradeの方法 | ふらっと考える