Create Musl and Glibc AppImage builds
This commit is contained in:
qurious-pixel
2024-06-11 20:01:41 -07:00
committed by GitHub
parent 5482b8ee54
commit 4bafff6d9f
2 changed files with 73 additions and 0 deletions

9
.github/scripts/KDiskInfo.desktop vendored Normal file
View File

@@ -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

64
.github/workflows/build.yaml vendored Normal file
View File

@@ -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