|
10 | 10 | jobs: |
11 | 11 | build-flatpak: |
12 | 12 | runs-on: ubuntu-latest |
| 13 | + container: |
| 14 | + image: bilelmoussaoui/flatpak-github-actions:gnome-44 |
| 15 | + options: --privileged |
13 | 16 | steps: |
14 | | - # 1) Check out your code |
15 | 17 | - uses: actions/checkout@v3 |
16 | | - |
17 | | - # 2) Install Node.js (for npm) |
18 | 18 | - uses: actions/setup-node@v3 |
19 | 19 | with: |
20 | 20 | node-version: 18.15.0 |
21 | | - |
22 | | - # 3) Install Flatpak + flatpak-builder on the Ubuntu runner |
23 | | - - name: Install Flatpak tools |
24 | | - run: | |
25 | | - sudo apt-get update |
26 | | - sudo apt-get install -y flatpak flatpak-builder |
27 | | -
|
28 | | - # 4) Install npm dependencies |
| 21 | + |
29 | 22 | - name: Install dependencies |
30 | 23 | run: | |
31 | 24 | npm install |
32 | 25 | npm install --save-dev electron electron-builder |
33 | | -
|
34 | | - # 5) Build the Electron app |
| 26 | + |
35 | 27 | - name: Build electron app |
36 | 28 | run: | |
37 | 29 | npm run build |
38 | 30 | npm run package -- --linux dir |
39 | | -
|
40 | | - # 6) Add Flathub remote and install required runtimes |
| 31 | + |
41 | 32 | - name: Set up Flatpak environment |
42 | 33 | run: | |
43 | 34 | flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo |
44 | | - flatpak install -y --noninteractive flathub org.freedesktop.Platform//22.08 org.freedesktop.Sdk//22.08 org.electronjs.Electron2.BaseApp//22.08 |
45 | | -
|
46 | | - # 7) Prepare the Flatpak directory structure |
| 35 | + flatpak install -y flathub org.freedesktop.Platform//22.08 org.freedesktop.Sdk//22.08 org.electronjs.Electron2.BaseApp//22.08 |
| 36 | + |
47 | 37 | - name: Create Flatpak build structure |
48 | 38 | run: | |
49 | 39 | mkdir -p flatpak/opt/fukuro |
50 | | - # Copy the Electron build output |
51 | 40 | cp -r dist/linux-unpacked/* flatpak/opt/fukuro/ || cp -r dist/linux-x64-unpacked/* flatpak/opt/fukuro/ |
52 | | - # Copy your icon from wherever it's located (adjust this path as needed!) |
53 | | - # Example: cp public/icon.png flatpak/icon.png |
| 41 | + # Copy icon directly to the flatpak directory |
54 | 42 | cp public/icon.png flatpak/icon.png |
55 | | -
|
56 | | - # 8) Create deployment (desktop, metainfo, launcher) files inside flatpak/ |
| 43 | + |
57 | 44 | - name: Create Flatpak deployment files |
58 | 45 | run: | |
59 | | - cat > flatpak/com.gavrielsha.Fukuro.desktop << 'EOL' |
| 46 | + cat > flatpak/com.gavrielsha.Fukuro.desktop << EOL |
60 | 47 | [Desktop Entry] |
61 | 48 | Name=Fukuro |
62 | 49 | Comment=Simple and efficient RSS reader |
|
69 | 56 | StartupWMClass=fukuro |
70 | 57 | EOL |
71 | 58 | |
72 | | - cat > flatpak/com.gavrielsha.Fukuro.metainfo.xml << 'EOL' |
| 59 | + cat > flatpak/com.gavrielsha.Fukuro.metainfo.xml << EOL |
73 | 60 | <?xml version="1.0" encoding="UTF-8"?> |
74 | 61 | <component type="desktop-application"> |
75 | 62 | <id>com.gavrielsha.Fukuro</id> |
@@ -108,16 +95,15 @@ jobs: |
108 | 95 | </component> |
109 | 96 | EOL |
110 | 97 | |
111 | | - cat > flatpak/fukuro.sh << 'EOL' |
| 98 | + cat > flatpak/fukuro.sh << EOL |
112 | 99 | #!/bin/sh |
113 | | - exec /app/opt/fukuro/fukuro "$@" |
| 100 | + exec /app/opt/fukuro/fukuro "\$@" |
114 | 101 | EOL |
115 | 102 | chmod +x flatpak/fukuro.sh |
116 | | -
|
117 | | - # 9) Create the Flatpak manifest |
| 103 | + |
118 | 104 | - name: Create Flatpak manifest |
119 | 105 | run: | |
120 | | - cat > com.gavrielsha.Fukuro.json << 'EOL' |
| 106 | + cat > com.gavrielsha.Fukuro.json << EOL |
121 | 107 | { |
122 | 108 | "app-id": "com.gavrielsha.Fukuro", |
123 | 109 | "runtime": "org.freedesktop.Platform", |
@@ -157,25 +143,21 @@ jobs: |
157 | 143 | ] |
158 | 144 | } |
159 | 145 | EOL |
160 | | -
|
161 | | - # 10) Build the Flatpak |
| 146 | + |
162 | 147 | - name: Build Flatpak |
163 | 148 | run: | |
164 | 149 | flatpak-builder --repo=repo --force-clean build-dir com.gavrielsha.Fukuro.json |
165 | | -
|
166 | | - # 11) Bundle the Flatpak into a single file |
| 150 | + |
167 | 151 | - name: Create Flatpak bundle |
168 | 152 | run: | |
169 | 153 | flatpak build-bundle repo fukuro.flatpak com.gavrielsha.Fukuro |
170 | | -
|
171 | | - # 12) Upload the bundle as an artifact |
| 154 | + |
172 | 155 | - name: Upload Flatpak bundle as artifact |
173 | 156 | uses: actions/upload-artifact@v4 |
174 | 157 | with: |
175 | 158 | name: fukuro-flatpak |
176 | 159 | path: fukuro.flatpak |
177 | | - |
178 | | - # 13) Create a Release (if pushing a tag like v1.0.0) |
| 160 | + |
179 | 161 | - name: Release |
180 | 162 | uses: softprops/action-gh-release@v1 |
181 | 163 | if: startsWith(github.ref, 'refs/tags/') |
|
0 commit comments