Repository navigation
85 lines (77 loc) · 2.46 KB
/
Copy pathbuild-linux.yml
File metadata and controls
85 lines (77 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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-26.04
arch: x86_64
os_id: ubuntu26
os_name: linux-ubuntu26
- runner: ubuntu-26.04-arm
arch: arm64
os_id: ubuntu26
os_name: linux-ubuntu26
- 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-archive-linux-${{ matrix.os_id }}-${{ matrix.arch }}-${{ github.ref_name }}-${{ github.run_number }}
if-no-files-found: error
retention-days: 14
path: dist/SerialUI-*.zip