Files
MeshCore-mqtt-observer/.github/workflows/run-unit-tests.yml
agessaman d74a295ff7 ci(observer): gate observer releases on tests and preset parity
Release builds published without running the unit tests or the preset
parity check. Both channels now call those workflows and depend on
them, parity pins the channel under test to the candidate SHA rather
than a branch tip that may have moved, and check_observer_ci.py fails
the run if that graph is weakened. Adds a sanitized native environment
and extends the PR smoke matrix to the observer channels.
2026-09-21 16:06:32 -07:00

47 lines
1.1 KiB
YAML

name: Run Unit Tests
on:
push:
branches:
- main
- master
pull_request:
workflow_dispatch:
workflow_call:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Clone Repo
uses: actions/checkout@v4
- name: Setup Build Environment
uses: ./.github/actions/setup-build-environment
- name: Verify ArduinoJson pin
run: |
python3 -B scripts/check_arduinojson_pin.py --self-test
python3 -B scripts/check_arduinojson_pin.py
- name: Verify observer tooling
run: |
python3 -m pip install PyYAML==6.0.2
python3 -B scripts/check_mqtt_preset_parity.py --self-test
python3 -B scripts/check_observer_ci.py
- name: Run Unit Tests
run: pio test -e native -e native_kiss_modem -e native_sanitized -vv
- name: Upload Test Results
# Upload test results even if the test step failed.
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: |
.pio/build/native/
.pio/build/native_kiss_modem/
.pio/build/native_sanitized/