From 85954b05bb06104d5d8f686f7ad2530bff579b9d Mon Sep 17 00:00:00 2001 From: Matt Jones <47545907+SoundMatt@users.noreply.github.com> Date: Fri, 19 Jun 2026 09:22:26 -0700 Subject: [PATCH] ci: add relay conform conformance gate (closes #18) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New relay-conform job checks out the public SoundMatt/RELAY repo, builds the authoritative relay tool (Go 1.25), builds the cpp-rcp CLI, and runs 'relay conform --strict' against it — gating PRs on RELAY spec §12 version/capabilities/status document conformance. Co-Authored-By: Claude Opus 4.8 Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com> --- .github/workflows/ci.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4539dd..ba5d7ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,6 +85,42 @@ jobs: name: compile-commands path: build/compile_commands.json + # ── RELAY conformance gate (spec §12) ──────────────────────────────────────── + relay-conform: + name: relay conform (RELAY §12 conformance) + runs-on: ubuntu-22.04 + steps: + - name: Checkout cpp-RCP + uses: actions/checkout@v4 + + - name: Checkout RELAY (authoritative conformance validator) + uses: actions/checkout@v4 + with: + repository: SoundMatt/RELAY + path: RELAY + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.25' + + - name: Build relay conformance tool + working-directory: RELAY + run: go build -o "$RUNNER_TEMP/relay" ./cmd/relay + + - name: Install build tools + run: | + sudo apt-get update -qq + sudo apt-get install -y cmake ninja-build + + - name: Build cpp-rcp CLI + run: | + cmake -B build -DCMAKE_BUILD_TYPE=Release -DRELAY_BUILD_CLI=ON -G Ninja + cmake --build build --target cpp-rcp --parallel + + - name: Run relay conform (strict) + run: '"$RUNNER_TEMP/relay" conform --strict build/cpp-rcp' + # ── clang-tidy ─────────────────────────────────────────────────────────────── clang-tidy: name: clang-tidy