name: tests on: push: branches: [main] pull_request: jobs: build-and-test: runs-on: ubuntu-latest container: image: ubuntu:24.04 steps: # actions/checkout@v4 is a Node-based action; the bare ubuntu:24.04 # runner image has no node, so checkout fails with # `exitcode '127': command not found`. Install node + git BEFORE # checkout, then install the rest of the toolchain after. - name: Bootstrap (node + git for actions/checkout) run: | export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y --no-install-recommends \ git \ ca-certificates \ nodejs - uses: actions/checkout@v4 - name: Install C++ toolchain run: | export DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ build-essential \ cmake \ ninja-build \ libasio-dev \ libyaml-cpp-dev \ python3 \ python3-yaml - name: Configure run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release - name: Build run: cmake --build build - name: Unit tests run: build/secsgem_tests