67 lines
2.5 KiB
YAML
67 lines
2.5 KiB
YAML
name: qt-linux-amd64
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
tags: [ 'v*' ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
qt-linux-amd64:
|
|
runs-on: amd64-native
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install build dependencies
|
|
run: |
|
|
apt-get update
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
build-essential cmake ninja-build qt6-base-dev \
|
|
imagemagick file curl
|
|
|
|
- name: Configure + build
|
|
run: |
|
|
set -eu
|
|
cmake -S . -B build-out -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build-out --parallel "$(nproc)"
|
|
|
|
- name: Build AppImage (amd64)
|
|
run: |
|
|
set -eu
|
|
rm -rf AppDir artifacts
|
|
mkdir -p AppDir/usr/bin AppDir/usr/share/applications AppDir/usr/share/icons/hicolor/256x256/apps artifacts
|
|
cp build-out/qt_tray_demo AppDir/usr/bin/qt_tray_demo
|
|
chmod +x AppDir/usr/bin/qt_tray_demo
|
|
convert build/appicon.svg -resize 256x256 AppDir/usr/share/icons/hicolor/256x256/apps/qt_tray_demo.png
|
|
cat > AppDir/usr/share/applications/qt_tray_demo.desktop <<'DESKTOP'
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Qt Tray Demo
|
|
Exec=qt_tray_demo
|
|
Icon=qt_tray_demo
|
|
Terminal=false
|
|
Categories=Utility;
|
|
DESKTOP
|
|
curl -L -o linuxdeploy.AppImage https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
|
curl -L -o linuxdeploy-plugin-qt.AppImage https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
|
chmod +x linuxdeploy.AppImage linuxdeploy-plugin-qt.AppImage
|
|
export QMAKE=qmake6
|
|
APPIMAGE_EXTRACT_AND_RUN=1 ./linuxdeploy.AppImage --appdir AppDir \
|
|
-e AppDir/usr/bin/qt_tray_demo \
|
|
-d AppDir/usr/share/applications/qt_tray_demo.desktop \
|
|
-i AppDir/usr/share/icons/hicolor/256x256/apps/qt_tray_demo.png \
|
|
--plugin qt --output appimage
|
|
generated=$(ls -1 *.AppImage | head -n 1)
|
|
out="artifacts/qt_tray_demo-linux-amd64-run${{ github.run_number }}.AppImage"
|
|
mv "$generated" "$out"
|
|
chmod +x "$out"
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: qt_tray_demo-linux-amd64-run${{ github.run_number }}
|
|
path: artifacts/
|
|
retention-days: 14
|