From 4bafff6d9f02a3b5a4ab58550baccfd3e7fbac5e Mon Sep 17 00:00:00 2001 From: qurious-pixel <62252937+qurious-pixel@users.noreply.github.com> Date: Tue, 11 Jun 2024 20:01:41 -0700 Subject: [PATCH] CI Build Create Musl and Glibc AppImage builds --- .github/scripts/KDiskInfo.desktop | 9 +++++ .github/workflows/build.yaml | 64 +++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .github/scripts/KDiskInfo.desktop create mode 100644 .github/workflows/build.yaml diff --git a/.github/scripts/KDiskInfo.desktop b/.github/scripts/KDiskInfo.desktop new file mode 100644 index 0000000..b170fb5 --- /dev/null +++ b/.github/scripts/KDiskInfo.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=KDiskInfo +Icon=KDiskInfo +Exec=KDiskInfo +Terminal=false +Categories=System;Monitor;ConsoleOnly; +Keywords=system;process;task diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..2cebbad --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,64 @@ +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 +