ci: produce deployable macOS arm64 Qt app bundle
Some checks failed
qt-linux-arm64 / qt-linux-arm64 (push) Successful in 46s
qt-linux-amd64 / qt-linux-amd64 (push) Successful in 1m4s
qt-macos-arm64 / qt-macos-arm64 (push) Has been cancelled

This commit is contained in:
OpenClaw Bot 2026-03-15 10:24:05 +00:00
parent 76c706af36
commit a3fe86abcd
2 changed files with 16 additions and 11 deletions

View File

@ -23,22 +23,27 @@ jobs:
- name: Configure + build - name: Configure + build
run: | run: |
set -eu set -eu
cmake -S . -B build-out -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(brew --prefix qt)" QT_PREFIX="$(brew --prefix qt)"
cmake -S . -B build-out -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$QT_PREFIX" \
-DCMAKE_OSX_ARCHITECTURES=arm64
cmake --build build-out --parallel "$(sysctl -n hw.ncpu)" cmake --build build-out --parallel "$(sysctl -n hw.ncpu)"
- name: Pack artifacts - name: Deploy Qt bundle and pack artifacts
run: | run: |
set -eu set -eu
rm -rf artifacts rm -rf artifacts
mkdir -p artifacts mkdir -p artifacts
if [ -d build-out/qt_tray_demo.app ]; then APP_PATH="build-out/qt_tray_demo.app"
tar -C build-out -czf artifacts/qt_tray_demo-macos-arm64-run${{ github.run_number }}.app.tar.gz qt_tray_demo.app [ -d "$APP_PATH" ] || { echo 'No .app produced (expected qt_tray_demo.app)'; exit 1; }
elif [ -f build-out/qt_tray_demo ]; then
cp build-out/qt_tray_demo artifacts/qt_tray_demo-macos-arm64-run${{ github.run_number }} QT_PREFIX="$(brew --prefix qt)"
chmod +x artifacts/qt_tray_demo-macos-arm64-run${{ github.run_number }} "$QT_PREFIX/bin/macdeployqt" "$APP_PATH" -dmg
else
echo 'No Qt macOS output found'; tar -C build-out -czf "artifacts/qt_tray_demo-macos-arm64-run${{ github.run_number }}.app.tar.gz" qt_tray_demo.app
exit 1 if ls -1 build-out/*.dmg >/dev/null 2>&1; then
cp build-out/*.dmg artifacts/
fi fi
- name: Upload artifacts - name: Upload artifacts

View File

@ -8,7 +8,7 @@ set(CMAKE_AUTOUIC ON)
find_package(Qt6 REQUIRED COMPONENTS Widgets) find_package(Qt6 REQUIRED COMPONENTS Widgets)
add_executable(qt_tray_demo add_executable(qt_tray_demo MACOSX_BUNDLE
src/main.cpp src/main.cpp
) )