Skip to content

v1.3.0 - Smart Collection Resilience #4

v1.3.0 - Smart Collection Resilience

v1.3.0 - Smart Collection Resilience #4

Workflow file for this run

# .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