Files
pyxis/.github/workflows/test.yml
T
Torlando 1a34c5526c ci: advance .ci microReticulum checkout to attested pin 921b3aa
The pyxis-pytest job checks out the microReticulum reference for the
NomadNet x86 client, whose CMake manifest attests the exact commit
(921b3aa, endpoint hot-path read gate). The workflow still pointed at
cd0338e, so the client configure aborted on the attestation check and
the pytest job failed before running tests. The native17 job (submodule)
is unaffected and already green.
2026-09-06 23:55:28 +00:00

110 lines
3.7 KiB
YAML

name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
pyxis-pytest:
name: Pyxis pytest suite (build_scripts + native)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Checkout pinned microReticulum reference
uses: actions/checkout@v4
with:
repository: torlando-tech/microReticulum
ref: 921b3aa030525f819671d99eff1d1f28350c9b69
path: .ci/microReticulum
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install test dependencies
run: |
sudo apt-get update
sudo apt-get install -y libbz2-dev
pip install pytest platformio rns==1.4.2 nomadnet==1.2.8
- name: Resolve and attest pinned LVGL dependency
env:
PYXIS_PLATFORMIO_BIN: ${{ env.pythonLocation }}/bin/pio
run: python tools/resolve_lvgl.py --root "$PWD"
- name: Build NomadNet real-peer client
run: |
cmake -S tests/native/nomadnet_x86_flow \
-B build/nomadnet-x86-flow \
-DRNS_SOURCE="$PWD/.ci/microReticulum"
cmake --build build/nomadnet-x86-flow --parallel
- name: Run pytest
env:
PYXIS_PLATFORMIO_BIN: ${{ env.pythonLocation }}/bin/pio
PYXIS_NOMADNET_X86_CLIENT: ${{ github.workspace }}/build/nomadnet-x86-flow/pyxis_nomadnet_x86_flow
PYXIS_NOMADNET_RNS_PYTHON: ${{ env.pythonLocation }}/bin/python
PYXIS_NOMADNET_REFERENCE_SOURCE: ${{ env.pythonLocation }}/lib/python3.11/site-packages
run: pytest tests/build_scripts tests/native -v
microreticulum-native:
name: microReticulum native unit tests (PlatformIO native17)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Cache PlatformIO
uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio-mrn-${{ hashFiles('deps/microReticulum/platformio.ini') }}
- name: Install PlatformIO
run: pip install --upgrade platformio
# microReticulum native17 vendors libbz2 sources but link_bz2.py
# links against system libbz2 — needs libbz2-dev on Ubuntu.
# apt-get update first: the ubuntu-latest runner's apt index can be
# stale, and installing the pinned libbz2-dev from a stale index 404s
# against the security mirror (the pyxis-pytest job above already
# updates before its install).
- name: Install libbz2-dev
run: |
sudo apt-get update
sudo apt-get install -y libbz2-dev
# Run only suites that build cleanly under native17 in the fork.
# Erroring suites (test_ble, test_tdeck, test_lxmf, test_ratchets, etc.)
# are tracked separately — see pyxis MEMORY.md.
- name: Run native17 tests
working-directory: deps/microReticulum
run: |
pio test -e native17 -f test_os
pio test -e native17 -f test_bytes
pio test -e native17 -f test_msgpack
pio test -e native17 -f test_crypto
pio test -e native17 -f test_filesystem
pio test -e native17 -f test_objects
pio test -e native17 -f test_general
pio test -e native17 -f test_reference
pio test -e native17 -f test_example
pio test -e native17 -f test_collections
pio test -e native17 -f test_interop