@@ -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