From 94beea3ad47bb16f929bbc65a945f00fbb734b4d Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Sat, 17 Aug 2024 23:11:12 +0800 Subject: [PATCH] CI: linux AppImage build --- .github/FUNDING.yml | 1 + .github/workflows/linux.yml | 42 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/linux.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..fc16bd9 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +ko_fi: blumia diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..0fcaa70 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,42 @@ +name: Linux Package + +on: [push, pull_request, workflow_dispatch] + +jobs: + build: + runs-on: ubuntu-24.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install build dept. + run: | + sudo apt update + sudo apt install cmake qt6-base-dev qt6-tools-dev qt6-declarative-dev portaudio19-dev libopenmpt-dev + # for linuxdeploy: https://github.com/AppImage/AppImageKit/wiki/FUSE + # linuxdeploy-plugin-qt still requires qmake currently: https://github.com/linuxdeploy/linuxdeploy-plugin-qt/issues/156 + sudo add-apt-repository universe + sudo apt install libfuse2 qmake6 + - name: Get linuxdeploy + run: | + wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage + chmod +x linuxdeploy-*.AppImage + - name: Build + working-directory: ./ + run: | + cmake -B build . + cmake --build build -j + - name: Package + env: + QMAKE: /usr/bin/qmake6 + run: | + ./linuxdeploy-x86_64.AppImage --appdir AppDir -e build/pmidi -d dist/net.blumia.pineapple-tracker-player.desktop -i dist/pineapple-tracker-player.svg --icon-filename net.blumia.pineapple-tracker-player -p qt -o appimage + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: Linux-Build + path: | + "*.AppImage" + "!linuxdeploy*.AppImage"