Skip to content

Commit ed12d42

Browse files
committed
add workflow for flatpak
1 parent 67ca91c commit ed12d42

2 files changed

Lines changed: 141 additions & 0 deletions

File tree

.github/workflows/flatpak.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
jobs:
9+
flatpak:
10+
name: "Flatpak"
11+
container:
12+
image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.9
13+
options: --privileged
14+
strategy:
15+
matrix:
16+
variant:
17+
- arch: x86_64
18+
runner: ubuntu-24.04
19+
- arch: aarch64
20+
runner: ubuntu-24.04-arm
21+
runs-on: ${{ matrix.variant.runner }}
22+
steps:
23+
- uses: actions/checkout@<commit hash>
24+
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
25+
with:
26+
bundle: palette.flatpak
27+
manifest-path: io.github.saeugetier.photobooth.json
28+
cache-key: flatpak-builder-${{ github.sha }}
29+
arch: ${{ matrix.variant.arch }}
30+
verbose: true
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
{
2+
"app-id": "io.github.saeugetier.photobooth",
3+
"runtime": "org.kde.Platform",
4+
"runtime-version": "6.9",
5+
"sdk": "org.kde.Sdk",
6+
"command": "qtbooth",
7+
"finish-args": [
8+
"--share=ipc",
9+
"--share=network",
10+
"--device=all",
11+
"--filesystem=home",
12+
"--socket=fallback-x11",
13+
"--socket=wayland"
14+
],
15+
"cleanup": [
16+
"/include",
17+
"/lib/pkgconfig",
18+
"/lib/cmake",
19+
"/share/doc",
20+
"/share/gtk-doc",
21+
"/share/man",
22+
"/share/pkgconfig",
23+
"*.la",
24+
"*.a"
25+
],
26+
"modules": [
27+
{
28+
"name": "opencv4",
29+
"buildsystem": "cmake-ninja",
30+
"builddir": true,
31+
"config-opts": [
32+
"-DBUILD_TESTS=OFF",
33+
"-DBUILD_PERF_TESTS=OFF",
34+
"-DBUILD_DOCS=OFF",
35+
"-DBUILD_LIST=imgproc,imgcodecs",
36+
"-DOPENCV_GENERATE_PKGCONFIG=ON",
37+
"-DOPENCV_LIB_INSTALL_PATH=/app/lib"
38+
],
39+
"sources": [
40+
{
41+
"type": "archive",
42+
"url": "https://github.com/opencv/opencv/archive/4.5.5.tar.gz",
43+
"sha256": "a1cfdcf6619387ca9e232687504da996aaa9f7b5689986b8331ec02cb61d28ad"
44+
}
45+
],
46+
"cleanup": [
47+
"/bin/*",
48+
"/share/opencv4/*"
49+
]
50+
},
51+
{
52+
"name": "onnxruntime",
53+
"buildsystem": "simple",
54+
"build-commands": [
55+
"mkdir -p ${FLATPAK_DEST}/include ${FLATPAK_DEST}/lib",
56+
"cp -r include/* ${FLATPAK_DEST}/include",
57+
"cp -r lib/* ${FLATPAK_DEST}/lib"
58+
],
59+
"sources": [
60+
{
61+
"type": "archive",
62+
"only-arches": [
63+
"x86_64"
64+
],
65+
"url": "https://github.com/microsoft/onnxruntime/releases/download/v1.21.0/onnxruntime-linux-x64-1.21.0.tgz",
66+
"sha256": "7485c7e7aac6501b27e353dcbe068e45c61ab51fbaf598d13970dfae669d20bf"
67+
},
68+
{
69+
"type": "archive",
70+
"only-arches": [
71+
"aarch64"
72+
],
73+
"url": "https://github.com/microsoft/onnxruntime/releases/download/v1.21.0/onnxruntime-linux-aarch64-1.21.0.tgz",
74+
"sha256": "4508084bde1232ee1ab4b6fad2155be0ea2ccab1c1aae9910ddb3fb68a60805e"
75+
}
76+
]
77+
},
78+
{
79+
"name": "qtvirtualkeyboard",
80+
"buildsystem": "cmake-ninja",
81+
"sources": [
82+
{
83+
"type": "archive",
84+
"url": "https://download.qt.io/official_releases/qt/6.9/6.9.0/submodules/qtvirtualkeyboard-everywhere-src-6.9.0.tar.xz",
85+
"sha256": "b85489ffbdd50cc42ea6a74f266215782045668a99cafc73007f6b4b28d69127"
86+
}
87+
],
88+
"post-install": [
89+
"rm -rd ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake",
90+
"rm -rd ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/pkgconfig",
91+
"mv ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/* /app/lib/",
92+
"rmdir ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu"
93+
]
94+
},
95+
{
96+
"name": "qtbooth",
97+
"buildsystem": "qmake",
98+
"post-install": [
99+
"install -Dm644 io.github.saeugetier.photobooth.metainfo.xml -t ${FLATPAK_DEST}/share/metainfo",
100+
"install -Dm644 io.github.saeugetier.photobooth.desktop -t ${FLATPAK_DEST}/share/applications",
101+
"install -Dm644 io.github.saeugetier.photobooth.svg -t ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps"
102+
],
103+
"sources": [
104+
{
105+
"type": "dir",
106+
"path": "."
107+
}
108+
]
109+
}
110+
]
111+
}

0 commit comments

Comments
 (0)