Build AppImage manually in CI workflow

Replace the cx_Freeze bdist_appimage step with an explicit manual AppImage build to avoid cx_Freeze rebuilding and untrimming artifacts. The workflow now downloads appimagetool, prepares an AppDir (AppDir/usr/bin), copies the trimmed build contents (preserving cx_Freeze relative paths), installs desktop/icon metadata, creates an AppRun symlink, and runs appimagetool with ARCH=x86_64 and --appimage-extract-and-run to avoid FUSE issues in CI. The rest of the job (e.g. RPM build) remains unchanged.
This commit is contained in:
oop7
2026-02-03 16:44:51 +02:00
parent 5d9054154c
commit ad63cdcca1
+25 -2
View File
@@ -271,8 +271,31 @@ jobs:
echo "Warning: Build directory not found, cannot trim files" echo "Warning: Build directory not found, cannot trim files"
fi fi
# Build AppImage # Build AppImage manually to avoid cx_Freeze rebuilding (and untrimming) the artifacts
python setup_cxfreeze.py bdist_appimage echo "Creating AppImage manually..."
mkdir -p dist
# Download appimagetool
wget -q -O appimagetool https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool
# Setup AppDir structure
rm -rf AppDir
mkdir -p AppDir/usr/bin
# Copy trimmed build content (preserving relative paths for cx_Freeze libs)
cp -r "$build_dir"/* AppDir/usr/bin/
# Setup metadata
cp ytsage.desktop AppDir/
cp branding/icons/icon.png AppDir/ytsage.png
# Create AppRun symlink
ln -s usr/bin/ytsage AppDir/AppRun
# Build AppImage (using --appimage-extract-and-run to avoid FUSE issues in CI)
# We explicitly set ARCH for appimagetool
ARCH=x86_64 ./appimagetool --appimage-extract-and-run AppDir "dist/ytsage-v${version}.AppImage"
# Build RPM manually with proper spec file # Build RPM manually with proper spec file
version="${{ steps.get_version.outputs.VERSION }}" version="${{ steps.get_version.outputs.VERSION }}"