feat: proper DCD based on PLL transition quality (from Direwolf) #149
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ "**" ] | |
| pull_request: | |
| branches: [ main ] | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| # ── Core build + tests ───────────────────────────────────────────────────── | |
| # Builds bbs / ax25kiss / ax25tnc and runs the full test suite. | |
| build-and-test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| name: Ubuntu GCC | |
| - os: macos-latest | |
| name: macOS Clang | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # ── Linux deps ───────────────────────────────────────────────────────── | |
| - name: Install dependencies (Ubuntu) | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt-get install -y libgtest-dev libsqlite3-dev libasound2-dev \ | |
| libdbus-1-dev libbluetooth-dev pkg-config cmake | |
| # Ubuntu ships GoogleTest as source-only; build and install the .a files. | |
| GTEST_SRC=$(ls -d /usr/src/googletest /usr/src/gtest 2>/dev/null | head -1) | |
| echo "Building GoogleTest from: $GTEST_SRC" | |
| cd "$GTEST_SRC" | |
| sudo cmake -B build -DCMAKE_BUILD_TYPE=Release | |
| sudo cmake --build build | |
| # Ubuntu 22.04+ puts libs under build/lib; older under build/ | |
| sudo find build -name 'libgtest*.a' -exec cp {} /usr/lib/ \; | |
| # ── macOS deps ───────────────────────────────────────────────────────── | |
| - name: Install dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: brew install googletest sqlite | |
| # ── Build core (no BLE) ──────────────────────────────────────────────── | |
| - name: Build core apps | |
| run: make bbs ax25kiss ax25tnc ax25sim ax25send | |
| # ── Build modemtnc ──────────────────────────────────────────────────── | |
| - name: Build modemtnc | |
| run: make modemtnc | |
| # ── Modemtnc loopback self-test ──────────────────────────────────────── | |
| - name: modemtnc loopback (1200 baud) | |
| run: ./bin/modemtnc --loopback -s 1200 -c CI | grep -q "PASS" | |
| - name: modemtnc loopback (300 baud) | |
| run: ./bin/modemtnc --loopback -s 300 -c CI | grep -q "PASS" | |
| - name: modemtnc loopback (9600 baud) | |
| run: ./bin/modemtnc --loopback -s 9600 -c CI | grep -q "PASS" | |
| # ── Test suite ───────────────────────────────────────────────────────── | |
| - name: Run tests | |
| run: make test | |
| # ── BT bridge (macOS only, non-blocking) ────────────────────────────────── | |
| # Verifies that bt_kiss_bridge still compiles. Runs on macOS because it has | |
| # CoreBluetooth + IOBluetooth out of the box (no extra deps needed). | |
| # Failures here are reported but do NOT block merges. | |
| build-bt-bridge: | |
| name: BT bridge (macOS, optional) | |
| runs-on: macos-latest | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build bt_kiss_bridge | |
| run: make bt_kiss_bridge | |
| - name: Create ble_kiss_bridge symlink | |
| run: ln -sf bt_kiss_bridge ble_kiss_bridge && ls -la ble_kiss_bridge |