Skip to content

Commit d3b4fb6

Browse files
committed
Fix app image
1 parent d1a380f commit d3b4fb6

1 file changed

Lines changed: 50 additions & 5 deletions

File tree

.github/workflows/build-release.yml

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -193,17 +193,62 @@ jobs:
193193
- name: Setup Gradle
194194
uses: gradle/actions/setup-gradle@v4
195195

196-
- name: Build AppImage
197-
run: ./gradlew :composeApp:packageAppImage
196+
- name: Install AppImage tools
197+
run: |
198+
sudo apt-get update
199+
sudo apt-get install -y libfuse2 file
200+
wget -q https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
201+
chmod +x appimagetool-x86_64.AppImage
202+
203+
- name: Build application distribution
204+
run: ./gradlew :composeApp:createDistributable
198205

199206
- name: Get version from tag
200207
id: version
201208
run: echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
202209

203-
- name: Rename AppImage
210+
- name: Create AppDir structure
211+
run: |
212+
mkdir -p AppDir/usr/bin
213+
mkdir -p AppDir/usr/lib
214+
mkdir -p AppDir/usr/share/applications
215+
mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps
216+
217+
# Copy distributable contents
218+
cp -r composeApp/build/compose/binaries/main/app/Braincup/* AppDir/usr/lib/
219+
220+
# Create a simple placeholder icon (1x1 transparent PNG)
221+
echo 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==' | base64 -d > AppDir/usr/share/icons/hicolor/256x256/apps/braincup.png
222+
cp AppDir/usr/share/icons/hicolor/256x256/apps/braincup.png AppDir/braincup.png
223+
224+
# Create desktop file
225+
cat > AppDir/braincup.desktop << 'EOF'
226+
[Desktop Entry]
227+
Name=Braincup
228+
Comment=Brain Training Application
229+
Exec=braincup
230+
Icon=braincup
231+
Type=Application
232+
Categories=Game;Education;
233+
Terminal=false
234+
EOF
235+
cp AppDir/braincup.desktop AppDir/usr/share/applications/
236+
237+
# Create AppRun
238+
cat > AppDir/AppRun << 'EOF'
239+
#!/bin/bash
240+
SELF=$(readlink -f "$0")
241+
HERE=${SELF%/*}
242+
export PATH="${HERE}/usr/lib/bin:${PATH}"
243+
export LD_LIBRARY_PATH="${HERE}/usr/lib/lib/runtime/lib:${LD_LIBRARY_PATH}"
244+
exec "${HERE}/usr/lib/bin/Braincup" "$@"
245+
EOF
246+
chmod +x AppDir/AppRun
247+
248+
- name: Build AppImage
204249
run: |
205-
mv composeApp/build/compose/binaries/main/app/*.AppImage \
206-
Braincup-${{ steps.version.outputs.version }}-linux.AppImage
250+
ARCH=x86_64 ./appimagetool-x86_64.AppImage --appimage-extract-and-run AppDir \
251+
Braincup-${{ steps.version.outputs.version }}-linux.AppImage
207252
208253
- name: Upload AppImage artifact
209254
uses: actions/upload-artifact@v4

0 commit comments

Comments
 (0)