Skip to content

Make --create-release metadata-only; keep asset upload separate #2

Make --create-release metadata-only; keep asset upload separate

Make --create-release metadata-only; keep asset upload separate #2

Workflow file for this run

name: Build Linux Executables (AMD64 + ARM64)
on:
workflow_dispatch:
push:
tags:
- '*'
permissions:
contents: read
jobs:
build-linux:
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-24.04
arch: x86_64
os_id: ubuntu24
os_name: linux-ubuntu24
- runner: ubuntu-22.04
arch: x86_64
os_id: ubuntu22
os_name: linux-ubuntu22
- runner: ubuntu-24.04-arm
arch: arm64
os_id: ubuntu24
os_name: linux-ubuntu24
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install app dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install pyqt6 pyqtgraph markdown bleak numpy scipy numba fastplotlib PyOpenGL pybind11 setuptools cobs tamp pyudev
- name: Build executable archive via release.sh (with C-accelerated line parser)
shell: bash
env:
PYTHON_BIN: python
BUILD_OS_NAME: ${{ matrix.os_name }}
run: |
bash scripts/release.sh --build-c-executable --build-c-accelerated
- name: Frozen self-tests (C parser + numba)
shell: bash
run: |
FROZEN_EXE=""
if [[ -x "dist/SerialUI/SerialUI" ]]; then
FROZEN_EXE="dist/SerialUI/SerialUI"
elif [[ -x "dist/SerialUI.app/Contents/MacOS/SerialUI" ]]; then
FROZEN_EXE="dist/SerialUI.app/Contents/MacOS/SerialUI"
else
echo "Frozen executable not found for self-tests." >&2
exit 1
fi
"${FROZEN_EXE}" --selftest-c-parser
"${FROZEN_EXE}" --selftest-numba
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: SerialUI-linux-${{ matrix.os_id }}-${{ matrix.arch }}-${{ github.ref_name }}-${{ github.run_number }}
if-no-files-found: error
retention-days: 14
path: |
dist/SerialUI-*.zip
dist/SerialUI