name: Build on: push: branches: - main pull_request: workflow_dispatch: jobs: build-unix: strategy: fail-fast: false matrix: clib: [glibc, musl] include: - clib: glibc os: ubuntu-22.04 - clib: musl os: ubuntu-latest container: alpine:latest runs-on: ${{ matrix.os }} container: image: ${{ matrix.container }} steps: - uses: actions/checkout@v4 - name: Install dependencies for glibc run: | sudo apt update sudo apt install -y qt6-base-dev libgl1-mesa-dev libxkbcommon-dev libvulkan-dev qmake6 if: ${{ matrix.clib == 'glibc' }} - name: Install dependencies for musl run: | apk add git cmake make gcc g++ curl gcompat qt6-qtbase-dev qt6-qtbase-x11 git config --global --add safe.directory '*' if: ${{ matrix.clib == 'musl' }} - name: Build run: | cmake -Bbuild cmake --build build - name: Package AppImage run: | curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-static-x86_64.AppImage" curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-static-x86_64.AppImage" curl -sSfL "https://github.com/probonopd/go-appimage/releases/download/832/appimagetool-823-x86_64.AppImage" -o appimagetool-static.AppImage chmod a+x *.AppImage mkdir -p AppDir/usr/bin cp build/KDiskInfo AppDir/usr/bin/ cp .github/scripts/KDiskInfo.desktop AppDir/ cp icon.svg AppDir/KDiskInfo.svg APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 QMAKE=/usr/bin/qmake6 ARCH=x86_64 ./linuxdeploy-static-x86_64.AppImage --appdir=AppDir/ -d AppDir/KDiskInfo.desktop -i AppDir/KDiskInfo.svg -e AppDir/usr/bin/KDiskInfo --plugin qt APPIMAGE_EXTRACT_AND_RUN=1 VERSION=${{ matrix.clib }} QMAKE=/usr/bin/qmake6 ARCH=x86_64 ./appimagetool-static.AppImage AppDir/ - name: Upload AppImage uses: actions/upload-artifact@v4 with: name: KDiskInfo-${{ matrix.clib }} path: ./KDiskInfo*.AppImage