Skip to content

feat(proof): backend-assurance harness for prim__eqChar (1/4) #220

feat(proof): backend-assurance harness for prim__eqChar (1/4)

feat(proof): backend-assurance harness for prim__eqChar (1/4) #220

Workflow file for this run

# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# Full test suite for BoJ Server: E2E, aspect tests, and benchmarks.
# Covers all merge requirement categories: P2P (zig-test.yml), E2E (here),
# aspect, execution, lifecycle, and benchmarks.
name: E2E + Aspect + Bench
on:
push:
branches: [main, master, develop]
paths:
- 'adapter/**'
- 'cartridges/**'
- 'ffi/**'
- 'mcp-bridge/**'
- 'tests/**'
- 'src/**'
- '.github/workflows/e2e.yml'
pull_request:
branches: [main, master]
paths:
- 'adapter/**'
- 'cartridges/**'
- 'ffi/**'
- 'mcp-bridge/**'
- 'tests/**'
- 'src/**'
workflow_dispatch:
permissions: read-all
concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
# ─── End-to-End: Full REST + MCP Bridge ────────────────────────────
e2e-full:
name: E2E — Full REST + MCP Bridge
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Zig
uses: goto-bus-stop/setup-zig@9566bb3e8749893055694249726756f25e099b30 # v2
with:
version: 0.15.1
- name: Install Deno
uses: denoland/setup-deno@667a34cdef165d8d2b2e98dde39547c9daac7282 # v2.0.4
with:
deno-version: v2.x
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y curl jq
- name: Build FFI libraries
run: |
cd ffi/zig && zig build
for cart in cartridges/*/ffi; do
[ -f "$cart/build.zig" ] && (cd "$cart" && zig build) || true
done
- name: Run E2E full test suite
run: bash tests/e2e_full.sh
- name: Upload test logs
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: e2e-full-logs
path: /tmp/boj-e2e-test.*
retention-days: 7
# ─── End-to-End: Order Ticket (FFI layer) ──────────────────────────
e2e-order-ticket:
name: E2E — Order Ticket (FFI layer)
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Zig
uses: goto-bus-stop/setup-zig@9566bb3e8749893055694249726756f25e099b30 # v2
with:
version: 0.15.1
- name: Build FFI libraries
run: cd ffi/zig && zig build
- name: Run order ticket E2E
run: bash tests/order_ticket_e2e.sh
# ─── Aspect Tests: Cross-Cutting Concerns ──────────────────────────
aspect-tests:
name: Aspect — Thread Safety + ABI Contract + SPDX
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run aspect tests
run: bash tests/aspect_tests.sh
# ─── Benchmarks: Performance Regression Detection ──────────────────
benchmarks:
name: Bench — FFI Catalogue + Mount/Unmount + Hash
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Zig
uses: goto-bus-stop/setup-zig@9566bb3e8749893055694249726756f25e099b30 # v2
with:
version: 0.15.1
- name: Build FFI libraries
run: cd ffi/zig && zig build
- name: Run benchmarks
run: cd ffi/zig && zig build bench
- name: Upload benchmark results
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: benchmark-results
path: ffi/zig/zig-out/bench*
retention-days: 30