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 を向いた状態で正しく動くようになりました。お粗末さまでした。