GitHub Actions + Flutter
FlutterのプロジェクトをBuild・Releaseすることができるようになりました。
いくつかつまづいた点があるので、ここではそれらについて書こうと思います。
※当時はまだベータだったので、今後改善されるかもしれません。
つまづきポイント
FlutterのプロジェクトにDartのWorkflowを適用しても動かない
なんとなく、以下のworkflowを設定しました。しかし、うまく動きませんでした。
Flutter用のworkflowを設定する必要がありました。
Flutter用の環境設定には、現状は以下の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の機能があるっていうのは、いいですよね。
スポンサーリンク