11# SPDX-License-Identifier: PMPL-1.0-or-later
22# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33#
4- # End-to-end test suite for BoJ Server.
5- # Runs e2e_full.sh and order_ticket_e2e.sh after building the adapter and FFI.
4+ # Full test suite for BoJ Server: E2E, aspect tests, and benchmarks.
5+ # Covers all merge requirement categories: P2P (zig-test.yml), E2E (here),
6+ # aspect, execution, lifecycle, and benchmarks.
67
7- name : E2E Tests
8+ name : E2E + Aspect + Bench
89
910on :
1011 push :
1516 - ' ffi/**'
1617 - ' mcp-bridge/**'
1718 - ' tests/**'
19+ - ' src/**'
1820 - ' .github/workflows/e2e.yml'
1921 pull_request :
2022 branches : [main, master]
2426 - ' ffi/**'
2527 - ' mcp-bridge/**'
2628 - ' tests/**'
29+ - ' src/**'
2730 workflow_dispatch :
2831
2932permissions : read-all
@@ -33,6 +36,7 @@ concurrency:
3336 cancel-in-progress : true
3437
3538jobs :
39+ # ─── End-to-End: Full REST + MCP Bridge ────────────────────────────
3640 e2e-full :
3741 name : E2E — Full REST + MCP Bridge
3842 runs-on : ubuntu-latest
8286 path : /tmp/boj-e2e-test.*
8387 retention-days : 7
8488
89+ # ─── End-to-End: Order Ticket (FFI layer) ──────────────────────────
8590 e2e-order-ticket :
8691 name : E2E — Order Ticket (FFI layer)
8792 runs-on : ubuntu-latest
@@ -101,3 +106,45 @@ jobs:
101106
102107 - name : Run order ticket E2E
103108 run : bash tests/order_ticket_e2e.sh
109+
110+ # ─── Aspect Tests: Cross-Cutting Concerns ──────────────────────────
111+ aspect-tests :
112+ name : Aspect — Thread Safety + ABI Contract + SPDX
113+ runs-on : ubuntu-latest
114+ timeout-minutes : 10
115+
116+ steps :
117+ - name : Checkout
118+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
119+
120+ - name : Run aspect tests
121+ run : bash tests/aspect_tests.sh
122+
123+ # ─── Benchmarks: Performance Regression Detection ──────────────────
124+ benchmarks :
125+ name : Bench — FFI Catalogue + Mount/Unmount + Hash
126+ runs-on : ubuntu-latest
127+ timeout-minutes : 15
128+
129+ steps :
130+ - name : Checkout
131+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
132+
133+ - name : Install Zig
134+ uses : goto-bus-stop/setup-zig@7ab2955eb728f5440978d7b4f723a50dea1f3608 # v2
135+ with :
136+ version : 0.15.0
137+
138+ - name : Build FFI libraries
139+ run : cd ffi/zig && zig build
140+
141+ - name : Run benchmarks
142+ run : cd ffi/zig && zig build bench
143+
144+ - name : Upload benchmark results
145+ if : always()
146+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
147+ with :
148+ name : benchmark-results
149+ path : ffi/zig/zig-out/bench*
150+ retention-days : 30
0 commit comments