-
Notifications
You must be signed in to change notification settings - Fork 0
92 lines (78 loc) · 2.61 KB
/
zig-test.yml
File metadata and controls
92 lines (78 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# SPDX-License-Identifier: PMPL-1.0-or-later
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# BoJ Server — Zig FFI test & build pipeline
name: Zig FFI Tests
on:
push:
branches: [main]
paths:
- 'ffi/**'
- 'cartridges/**/ffi/**'
pull_request:
branches: [main]
paths:
- 'ffi/**'
- 'cartridges/**/ffi/**'
permissions:
contents: read
jobs:
test:
name: Zig FFI Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Install Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: 0.15.2
- name: Run catalogue tests
run: cd ffi/zig && zig build test --summary all
- name: Run readiness tests
run: cd ffi/zig && zig build readiness --summary all
- name: Run cartridge FFI tests (all 73 cartridges)
run: |
failed=""
for cart in $(ls -d cartridges/*/ffi/ 2>/dev/null | sed 's|cartridges/||;s|/ffi/||' | sort); do
echo "::group::Testing $cart..."
if cd "cartridges/$cart/ffi" && zig build test --summary all 2>&1; then
echo " ✓ $cart passed"
else
echo " ✗ $cart FAILED"
failed="$failed $cart"
fi
cd "$GITHUB_WORKSPACE"
echo "::endgroup::"
done
if [ -n "$failed" ]; then
echo "::error::Failed cartridges:$failed"
exit 1
fi
- name: Build cartridge shared libraries (all 73 cartridges)
run: |
for cart in $(ls -d cartridges/*/ffi/ 2>/dev/null | sed 's|cartridges/||;s|/ffi/||' | sort); do
echo "Building $cart .so..."
cd "cartridges/$cart/ffi" && zig build
cd "$GITHUB_WORKSPACE"
done
- name: Build static library
run: cd ffi/zig && zig build lib
- name: Run benchmarks
run: cd ffi/zig && zig build bench
v-lang-check:
name: V-lang Adapter Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Install V-lang
run: |
sudo apt-get update && sudo apt-get install -y libgc-dev
git clone --depth=1 https://github.com/vlang/v
cd v && make && sudo ./v symlink
cd ..
- name: Check LSP/DAP/BSP Adapters
run: |
for cart in lsp-mcp dap-mcp bsp-mcp; do
echo "Checking $cart adapter..."
v check cartridges/$cart/adapter/*.v
done