Skip to content

Windows v1.0.3 Professional — EULA-gated tests, per-boot certificatio… #4

Windows v1.0.3 Professional — EULA-gated tests, per-boot certificatio…

Windows v1.0.3 Professional — EULA-gated tests, per-boot certificatio… #4

Workflow file for this run

name: Build macOS app
on:
workflow_dispatch:
inputs:
run_tests:
description: "Run pytest before packaging"
required: false
default: true
type: boolean
push:
branches: ["main"]
tags: ["v*"]
permissions:
contents: write
jobs:
build:
name: arm64 on macos-14
runs-on: macos-14
env:
PIP_NO_CACHE_DIR: "1"
MPLBACKEND: Agg
QECTOR_SILENT: "1"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Report build inputs
run: |
echo "runner arch : $(uname -m)"
echo "target slice: arm64"
python -c "import sys; sys.path.insert(0,'Mac'); import version; print('workbench :', version.WORKBENCH_VERSION); print('backend :', version.BACKEND_VERSION)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip wheel
pip install --find-links Mac/wheels --prefer-binary -r Mac/requirements.txt pyinstaller pytest pytest-asyncio
- name: Run unit & decoder tests
if: >-
github.event_name != 'workflow_dispatch' ||
inputs.run_tests
run: |
cd Mac
python -m pytest tests/test_backend.py tests/test_decoders.py tests/test_code_families.py tests/test_hardware_routing.py tests/test_security.py tests/test_cross_platform_paths.py -q
- name: Build .app and .dmg
run: |
chmod +x Mac/build_macos.sh
cd Mac
./build_macos.sh --arch arm64
- name: Verify the frozen app
run: |
set -e
APP="Mac/dist/QectorWorkbench.app/Contents/MacOS/QectorWorkbench"
test -x "$APP" || { echo "frozen binary missing at $APP"; ls -R Mac/dist | head -40; exit 1; }
echo "--- decoder selftest ---"
"$APP" --decoder-selftest
echo "--- CLI version ---"
"$APP" --cli version
- name: Checksum the artifacts
run: |
cd Mac/dist
shasum -a 256 *.dmg > SHA256SUMS.txt || true
cat SHA256SUMS.txt || true
ls -lh
- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: QectorWorkbench-macOS-arm64
path: |
Mac/dist/*.dmg
Mac/dist/SHA256SUMS.txt
Mac/dist/SBOM.json
retention-days: 30
if-no-files-found: error
- name: Release to GitHub
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: |
Mac/dist/*.dmg
Mac/dist/SHA256SUMS.txt
Mac/dist/SBOM.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}