Skip to content

Commit 7a4b25f

Browse files
hyperpolymathclaude
andcommitted
ci: expand E2E workflow to include aspect tests and benchmarks
Adds aspect_tests.sh (thread safety, ABI contract, SPDX) and FFI benchmarks as CI jobs alongside existing E2E suites. Covers all merge requirement test categories. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 5d16754 commit 7a4b25f

1 file changed

Lines changed: 50 additions & 3 deletions

File tree

.github/workflows/e2e.yml

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
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

910
on:
1011
push:
@@ -15,6 +16,7 @@ on:
1516
- 'ffi/**'
1617
- 'mcp-bridge/**'
1718
- 'tests/**'
19+
- 'src/**'
1820
- '.github/workflows/e2e.yml'
1921
pull_request:
2022
branches: [main, master]
@@ -24,6 +26,7 @@ on:
2426
- 'ffi/**'
2527
- 'mcp-bridge/**'
2628
- 'tests/**'
29+
- 'src/**'
2730
workflow_dispatch:
2831

2932
permissions: read-all
@@ -33,6 +36,7 @@ concurrency:
3336
cancel-in-progress: true
3437

3538
jobs:
39+
# ─── End-to-End: Full REST + MCP Bridge ────────────────────────────
3640
e2e-full:
3741
name: E2E — Full REST + MCP Bridge
3842
runs-on: ubuntu-latest
@@ -82,6 +86,7 @@ jobs:
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

Comments
 (0)