Skip to content

Commit 5d16754

Browse files
hyperpolymathclaude
andcommitted
ci: add E2E test workflow wiring e2e_full.sh and order_ticket_e2e.sh
Existing E2E tests were never run in CI. This workflow runs both the full REST+MCP bridge suite and the FFI order-ticket tests on push/PR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8d9d9c5 commit 5d16754

1 file changed

Lines changed: 103 additions & 0 deletions

File tree

.github/workflows/e2e.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
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.
6+
7+
name: E2E Tests
8+
9+
on:
10+
push:
11+
branches: [main, master, develop]
12+
paths:
13+
- 'adapter/**'
14+
- 'cartridges/**'
15+
- 'ffi/**'
16+
- 'mcp-bridge/**'
17+
- 'tests/**'
18+
- '.github/workflows/e2e.yml'
19+
pull_request:
20+
branches: [main, master]
21+
paths:
22+
- 'adapter/**'
23+
- 'cartridges/**'
24+
- 'ffi/**'
25+
- 'mcp-bridge/**'
26+
- 'tests/**'
27+
workflow_dispatch:
28+
29+
permissions: read-all
30+
31+
concurrency:
32+
group: e2e-${{ github.ref }}
33+
cancel-in-progress: true
34+
35+
jobs:
36+
e2e-full:
37+
name: E2E — Full REST + MCP Bridge
38+
runs-on: ubuntu-latest
39+
timeout-minutes: 15
40+
41+
steps:
42+
- name: Checkout
43+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
44+
45+
- name: Install Zig
46+
uses: goto-bus-stop/setup-zig@7ab2955eb728f5440978d7b4f723a50dea1f3608 # v2
47+
with:
48+
version: 0.15.0
49+
50+
- name: Install V
51+
run: |
52+
git clone --depth 1 https://github.com/vlang/v /tmp/vlang
53+
cd /tmp/vlang && make && sudo cp v /usr/local/bin/
54+
55+
- name: Install Deno
56+
uses: denoland/setup-deno@5fae568d37c3b73e0e4ca63d4e2c4e324a2b3497 # v2
57+
with:
58+
deno-version: v2.x
59+
60+
- name: Install system dependencies
61+
run: sudo apt-get update && sudo apt-get install -y curl jq
62+
63+
- name: Build FFI libraries
64+
run: |
65+
cd ffi/zig && zig build
66+
for cart in cartridges/*/ffi; do
67+
[ -f "$cart/build.zig" ] && (cd "$cart" && zig build) || true
68+
done
69+
70+
- name: Build V adapter
71+
run: |
72+
cd adapter/v && v -o boj-server . || echo "V adapter build attempted"
73+
74+
- name: Run E2E full test suite
75+
run: bash tests/e2e_full.sh
76+
77+
- name: Upload test logs
78+
if: always()
79+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
80+
with:
81+
name: e2e-full-logs
82+
path: /tmp/boj-e2e-test.*
83+
retention-days: 7
84+
85+
e2e-order-ticket:
86+
name: E2E — Order Ticket (FFI layer)
87+
runs-on: ubuntu-latest
88+
timeout-minutes: 10
89+
90+
steps:
91+
- name: Checkout
92+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
93+
94+
- name: Install Zig
95+
uses: goto-bus-stop/setup-zig@7ab2955eb728f5440978d7b4f723a50dea1f3608 # v2
96+
with:
97+
version: 0.15.0
98+
99+
- name: Build FFI libraries
100+
run: cd ffi/zig && zig build
101+
102+
- name: Run order ticket E2E
103+
run: bash tests/order_ticket_e2e.sh

0 commit comments

Comments
 (0)