GitHub Actions + Flutter

GitHub Actionsを使ってFlutterのプロジェクトをビルドしてみました。

FlutterのプロジェクトをBuild・Releaseすることができるようになりました。
いくつかつまづいた点があるので、ここではそれらについて書こうと思います。
※当時はまだベータだったので、今後改善されるかもしれません。

つまづきポイント

FlutterのプロジェクトにDartのWorkflowを適用しても動かない

なんとなく、以下のworkflowを設定しました。しかし、うまく動きませんでした。
Flutter用のworkflowを設定する必要がありました。  

workflow

Flutter用の環境設定には、現状は以下のflutter-actionを使うのが、良さそうです。

flutter-action

Releaaseするときに使うsecrets.GITHUB_TOKENがよくわからない

yamlの中に突如登場するsecrets.GITHUB_TOKEN、わからん。

    - name: Push APK to Releases
      uses: ncipollo/release-action@v1
      with:
        artifacts: "build/app/outputs/apk/release/*.apk"
        token: ${{ secrets.GITHUB_TOKEN }}

公式のドキュメントをみると、GitHubがGITHUB_TOKENを自動で生成すると記載されていました。

GitHub automatically creates a GITHUB_TOKEN secret to use in your workflow.

[https://help.github.com/en/github/automating-your-workflow-with-github-actions/virtual-environments-for-github-actions#github_token-secret:embed:cite]

でもわざわざyamlで指定するからには、本当はGitHub上のどこかで指定するんでしょ?と疑っていました。
結果は、自動で生成されるため、特に気にせずとも動きました。
疑ってすいませんでした。

Marketplaceの検索がうまくできない

Releaseするために"ncipollo/release-action"をGitHubのMarketplaceで検索しても、うまく出てきませんでした。
“release"で検索すると出てきました。正式な名称が"Create Release"でした。
ここらへんの名称のブレが、GitHub Actionsエコシステムの成熟とともに改善されるといいなと思いました。

なぜこのactionを使おうと思ったのか

上記のactionを使おうと思った理由は、Flutterの公式のドキュメントからリンクされていたためでした。
他によいRelease用のActionがあるかもしれません。

flutter.dev/docs - Continuous delivery with Flutter

GitHub - nabilnalakath/flutter-githubaction

結果

GitHub - miajimyu/flutter_counter

GitHub - miajimyu/flutter_web_sample

READMEにバッジをつけています。

GitHubヘルプ - ワークフローのステータスバッジをリポジトリに追加する

参考資料

GitHubブログ - GitHub ActionsにCI/CD機能を搭載〜パブリックリポジトリでは無料で利用可能

GitHubヘルプ - GitHub Actionsのドキュメント

学び

GitHub Actions(beta)を使って、FlutterのプロジェクトをBuild/Releaseできるようになった。
ソースコードを管理するGitHub自体にCI/CDの機能があるっていうのは、いいですよね。


スポンサーリンク