v1.3.0 - Smart Collection Resilience #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # .github/workflows/build-appimage.yml | |
| # | |
| # Builds a portable AppImage using PyInstaller + linuxdeploy. | |
| # Can be triggered manually, called by other workflows, or on release. | |
| name: Build AppImage | |
| on: | |
| workflow_dispatch: | |
| workflow_call: | |
| release: | |
| types: [published] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libegl1 libxcb-xinerama0 \ | |
| libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 \ | |
| libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 \ | |
| libxcb-xkb1 libxkbcommon-x11-0 libgl1 fuse libfuse2 | |
| - name: Install Python dependencies | |
| run: | | |
| pip install --upgrade pip | |
| pip install -r requirements-user.txt | |
| pip install pyinstaller==6.10.0 | |
| - name: Build with PyInstaller | |
| run: | | |
| pyinstaller --windowed --noconfirm \ | |
| --name SteamLibraryManager \ | |
| --add-data "steam_library_manager:steam_library_manager" \ | |
| steam_library_manager/main.py | |
| - name: Create AppDir structure | |
| run: | | |
| mkdir -p AppDir/usr/{bin,share/{applications,icons/hicolor/scalable/apps,metainfo}} | |
| cp -r dist/SteamLibraryManager/* AppDir/usr/bin/ | |
| # Symlink so linuxdeploy finds the Exec= entry from the desktop file | |
| ln -sf SteamLibraryManager AppDir/usr/bin/steam-library-manager | |
| cp flatpak/io.github.switch_bros.SteamLibraryManager.desktop \ | |
| AppDir/usr/share/applications/ | |
| cp flatpak/io.github.switch_bros.SteamLibraryManager.svg \ | |
| AppDir/usr/share/icons/hicolor/scalable/apps/ | |
| cp steam_library_manager/resources/io.github.switch_bros.SteamLibraryManager.metainfo.xml \ | |
| AppDir/usr/share/metainfo/ | |
| cp flatpak/io.github.switch_bros.SteamLibraryManager.desktop AppDir/ | |
| cp flatpak/io.github.switch_bros.SteamLibraryManager.svg AppDir/ | |
| - name: Download linuxdeploy | |
| run: | | |
| wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" | |
| chmod +x linuxdeploy-x86_64.AppImage | |
| - name: Build AppImage | |
| run: | | |
| export OUTPUT="SteamLibraryManager-x86_64.AppImage" | |
| ARCH=x86_64 ./linuxdeploy-x86_64.AppImage \ | |
| --appdir AppDir \ | |
| --desktop-file AppDir/io.github.switch_bros.SteamLibraryManager.desktop \ | |
| --icon-file AppDir/io.github.switch_bros.SteamLibraryManager.svg \ | |
| --output appimage | |
| # Rename if linuxdeploy used a different name | |
| if [ ! -f "$OUTPUT" ]; then | |
| mv SteamLibraryManager-*.AppImage "$OUTPUT" 2>/dev/null || true | |
| fi | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: SteamLibraryManager-AppImage | |
| path: SteamLibraryManager-x86_64.AppImage |