Open17

Fletで作ったアプリをGitHub Actionsで実行可能ファイルにパッケージ化したい

mhmh

flet create でFlet Appを作る。

$ flet create todo-app
Done!

Run the app:

flet run todo-app


$ tree todo-app
todo-app
|-- README.md
|-- assets
|   `-- icon.png
|-- main.py
`-- requirements.txt

1 directory, 4 files

$

https://flet.dev/docs/cli/create/

mhmh

同じApp名を複数の個所に書くのが気になるので環境変数にした。
https://github.com/mh326/flet-todo-packaging-test/commit/4229cf98f073b4820f0d0ccbebd23065fcd5f1b6

試しにtagをpushしてみた。

$ git tag -a v0.0.1 -m 'test'

$ git push origin v0.0.1
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 156 bytes | 156.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/mh326/flet-todo-packaging-test.git
 * [new tag]         v0.0.1 -> v0.0.1

ワークフローの実行に失敗してる。環境変数にしたのが悪い。
https://github.com/mh326/flet-todo-packaging-test/actions/runs/8307634036/workflow

mhmh

まだ失敗している。
https://github.com/mh326/flet-todo-packaging-test/actions/runs/8307770126/job/22737341409

Installed versions
  Version 3.1 was not found in the local cache
  Error: The version '3.1' with architecture 'x64' was not found for Ubuntu 22.04.
  The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

actions/setup-python に倣った記述に書き直したら解消された。
https://github.com/actions/setup-python

が、 flet pack 実行時に PyInstaller が無いといわれた。
https://github.com/mh326/flet-todo-packaging-test/actions/runs/8307819143/job/22737433049

mhmh

requirements.txtにPyInstallerを追加したら、実行成功した。
https://github.com/mh326/flet-todo-packaging-test/actions/runs/8307871929/job/22737526102

gh release create にて --draft を指定しているため、最初は下書きになっている。

v*というタグがプッシュされたときにクロスプラットフォームでビルドを行い、Draft Releaseを作成するというものになっています。
最終的に手動でファイルを確認して問題がなければReleaseを公開するという方針にしております。

https://ksk-log.com/posts/2023/12/23-ghaction-flet-cross-build/