1+ name : Build Flet App
2+
3+ on :
4+ push :
5+ pull_request :
6+ workflow_dispatch :
7+
8+ env :
9+ UV_PYTHON : 3.12
10+ PYTHONUTF8 : 1
11+
12+ # https://docs.flet.dev/reference/environment-variables
13+ FLET_CLI_NO_RICH_OUTPUT : 1
14+
15+ jobs :
16+ build :
17+ name : Build ${{ matrix.name }}
18+ runs-on : ${{ matrix.runner }}
19+ strategy :
20+ fail-fast : false
21+ matrix :
22+ include :
23+ # -------- Desktop --------
24+ - name : linux
25+ runner : ubuntu-latest
26+ build_cmd : " flet build linux"
27+ artifact_path : build/linux
28+ needs_linux_deps : true
29+
30+ - name : macos
31+ runner : macos-latest
32+ build_cmd : " flet build macos"
33+ artifact_path : build/macos
34+ needs_linux_deps : false
35+
36+ - name : windows
37+ runner : windows-latest
38+ build_cmd : " flet build windows"
39+ artifact_path : build/windows
40+ needs_linux_deps : false
41+
42+ # -------- Android --------
43+ - name : aab
44+ runner : ubuntu-latest
45+ build_cmd : " flet build aab"
46+ artifact_path : build/aab
47+ needs_linux_deps : false
48+
49+ - name : apk
50+ runner : ubuntu-latest
51+ build_cmd : " flet build apk"
52+ artifact_path : build/apk
53+ needs_linux_deps : false
54+
55+ # -------- iOS --------
56+ - name : ipa
57+ runner : macos-latest
58+ build_cmd : " flet build ipa"
59+ artifact_path : build/ipa
60+ needs_linux_deps : false
61+
62+ # -------- Web --------
63+ - name : web
64+ runner : ubuntu-latest
65+ build_cmd : " flet build web"
66+ artifact_path : build/web
67+ needs_linux_deps : false
68+
69+ steps :
70+ - name : Checkout repository
71+ uses : actions/checkout@v4
72+
73+ - name : Setup uv
74+ uses : astral-sh/setup-uv@v6
75+
76+ - name : Install Linux dependencies
77+ if : matrix.needs_linux_deps
78+ shell : bash
79+ run : |
80+ sudo apt update --allow-releaseinfo-change
81+ sudo apt-get install -y --no-install-recommends \
82+ clang ninja-build libgtk-3-dev libasound2-dev libmpv-dev mpv \
83+ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev \
84+ gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
85+ gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 \
86+ gstreamer1.0-qt5 gstreamer1.0-pulseaudio pkg-config libsecret-1-0 libsecret-1-dev
87+ sudo apt-get clean
88+
89+
90+ - name : Build app
91+ shell : bash
92+ run : |
93+ uv run ${{ matrix.build_cmd }} --yes --verbose
94+
95+ - name : Upload Artifact
96+ uses : actions/upload-artifact@v5.0.0
97+ with :
98+ name : ${{ matrix.name }}-build-artifact
99+ path : ${{ matrix.artifact_path }}
100+ if-no-files-found : error
101+ overwrite : false
0 commit comments