Skip to content

Merge pull request #31 from Samueru-sama/main #117

Merge pull request #31 from Samueru-sama/main

Merge pull request #31 from Samueru-sama/main #117

Workflow file for this run

name: Build
on:
push:
branches:
- main
paths-ignore:
- '**.md'
pull_request:
workflow_dispatch:
jobs:
build-unix:
strategy:
fail-fast: false
matrix:
clib: [glibc, musl]
include:
- clib: glibc
os: ubuntu-24.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 qt6-tools-dev qt6-svg-dev libgl1-mesa-dev libxkbcommon-dev libvulkan-dev qmake6 smartmontools qt6ct patchelf
if: ${{ matrix.clib == 'glibc' }}
- name: Install dependencies for musl
run: |
apk add git cmake make gcc g++ curl gcompat qt6-qtbase-dev qt6-qttools-dev qt6-qtbase-x11 qt6-qtsvg breeze smartmontools
git config --global --add safe.directory '*'
if: ${{ matrix.clib == 'musl' }}
- name: Build
run: |
cmake -Bbuild -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 -DENABLE_TRANSLATIONS=ON
cmake --build build
- name: Package AppImage
run: |
export APPIMAGE_EXTRACT_AND_RUN=1 ARCH=x86_64 VERSION=anylinux
curl -sSfL "https://github.com/probonopd/go-appimage/releases/download/832/appimagetool-823-x86_64.AppImage" -o appimagetool-static.AppImage
chmod a+x *.AppImage
chmod a+x .github/scripts/smartctl
mkdir -p AppDir/usr/bin/../share/applications
cp build/QDiskInfo AppDir/usr/bin/
cp dist/QDiskInfo.desktop AppDir/usr/share/applications
cp dist/QDiskInfo.svg AppDir/QDiskInfo.svg
./appimagetool-static.AppImage -s deploy AppDir/usr/share/applications/*.desktop
# deploy qt6ct
mkdir -p ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes/../styles
cp -v /usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes/libqt6ct.so ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes
cp -v /usr/lib/x86_64-linux-gnu/qt6/plugins/styles/libqt6ct-style.so ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/styles
cp -v /usr/lib/x86_64-linux-gnu/libqt6ct* ./AppDir/lib/x86_64-linux-gnu
# HACK
patchelf --set-rpath '$ORIGIN/../../../../../bin:$ORIGIN/../../../../../lib64:$ORIGIN/../../../../../../lib64:$ORIGIN/../../../..:$ORIGIN/../../../../../../lib:$ORIGIN/../../../libfakeroot:$ORIGIN/../../../../../local/lib:$ORIGIN/../../../../../local/lib/x86_64-linux-gnu:$ORIGIN/../../../../../../lib/x86_64-linux-gnu:$ORIGIN/../../..:$ORIGIN/../../../../../../lib32:$ORIGIN/../../../../../lib32:$ORIGIN/../../../../../../lib/x86_64-linux-gnu/gconv:$ORIGIN/.:$ORIGIN/../iconengines:$ORIGIN/../imageformats:$ORIGIN/../xcbglintegrations' ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/platformthemes/* ./AppDir/usr/lib/x86_64-linux-gnu/qt6/plugins/styles/* ./AppDir/lib/x86_64-linux-gnu/libqt6ct*
./appimagetool-static.AppImage AppDir
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: QDiskInfo-anylinux-AppImage
path: ./QDiskInfo*.AppImage
- name: Upload Binaries
uses: actions/upload-artifact@v4
with:
name: QDiskInfo-Qt6-${{ matrix.clib }}-bin
path: ./build/QDiskInfo