1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FlutterのCI環境を整える

Last updated at Posted at 2021-06-02

前回 は Flutter の開発を始められるよう、環境構築をしました。
今回はその続きとして、CI環境を整えたいと思います。

具体的には、 Github ActionsLintUnit Test を実行させます。

Linterの導入

CIを回すまでがテーマのこの記事ですが、 Linter を導入したかったのが先で、どうせならCI回すようにしたほうがいいなということでそこまでを記事化することにしました。 Unit Test はついでです。

Flutter / Dart の Linter を導入するに当たって、こちらの記事を参考にさせてもらい、Linterpedantic、設定は pedantic_mono を採用することにしました。

まずはパッケージを導入します。

$ flutter pub add --dev pedantic
$ flutter pub add --dev pedantic_mono

余談ですが、一度に複数パッケージを指定する方法ってあるんですかね🤔
以下のように、他のパッケージマネージャで見る感じにしたら、最初の1個しか追加されなかったんですが・・・

$ flutter pub add --dev pedantic pedantic_mono

次に、上記参考記事にあるように、analysis_options.yaml を追加します。

analysis_options.yaml
include: package:pedantic_mono/analysis_options.yaml

VS Code がよしなに実行してくれて、警告がでました。
スクリーンショット 2021-05-30 11.01.31.png

CLIでやるときは、 flutter analyze です。

$ flutter analyze
Analyzing webapp...                                                     

   info • Prefer declaring const constructors on `@immutable` classes • lib/main.dart:31:3 • prefer_const_constructors_in_immutables
   info • Prefer const with constant constructors • lib/main.dart:96:13 • prefer_const_constructors
   info • Prefer const with constant constructors • lib/main.dart:109:16 • prefer_const_constructors
   info • Sort pub dependencies • pubspec.yaml:30:3 • sort_pub_dependencies

4 issues found. (ran in 1.5s)

それぞれ警告がなくなるように調整して、ここまでの差分がこんな感じです。
https://github.com/yu0819ki/flutter-sample-1/pull/1/files

Github Actions で動かす

まぁ、 Circle CI でも良かったんですけど、もはや連携が要らないほうが楽だなって。

Github ActionsFlutter を扱うための記事をいくつか流し読みしましたが、最終的に subosito/flutter-action の README を参考にするのが良さそうという結論に至りました。
誰かの作業ログだとバージョンが古いとかあるけど、誰がやっても subosito/flutter-action を使うなら、それを見れば最新に追従できるわけで。

・・・

と思ったんですが、2021年6月2日 9:00 現在、subosito/flutter-actionFlutter のバイナリ(?)をダウンロードする部分で問題が起きており、実行ができませんでした😇
https://github.com/subosito/flutter-action/issues/99

おそらく動くはずの設定ファイルを以下のように作りました。上記Issueが解決したらまた確認します。
https://github.com/yu0819ki/flutter-sample-1/blob/feature/add_linter/.github/workflows/ci.yaml

・・・【追記】・・・
上記の件について、解消してました。
解消のPRを見る限り、ファイル置き場が変わったためのようです。
https://github.com/subosito/flutter-action/pull/100/files

解消したのを確認できたので、GithubActions の設定ファイルはそのままで、意図的に警告が出るようにしてみたりもしました。
https://github.com/yu0819ki/flutter-sample-1/pull/2/checks?sha=e50413b5ea01f112f39baf0b188f3d2c28accc39

つぶやき

pedantic_mono だけを導入すると、以下のような警告が出たんですが、 pedantic も導入することで警告が消えました。
初心者からすると「それも要るんかい。依存で解決されないんかい。」って感じです。
スクリーンショット 2021-06-02 7.30.05.png

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?