Repository navigation
125 lines (120 loc) · 4.44 KB
/
Copy pathsmoke.yml
File metadata and controls
125 lines (120 loc) · 4.44 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Smoke invariants across the WIDEST set of GitHub-hosted runners. Builds the
# production source path with explicit fault-injection test seams and runs
# scripts/smoke-invariants.sh
# (version/help, MCP initialize handshake [#513], all 14 tools invocable, malformed-
# input resilience, clean EOF exit, shared-lib resolution, install dry-run).
#
# Maximizing platforms is the point: ubuntu-22.04 (older glibc → AlmaLinux/#182
# class), all arm64 variants + windows-11-arm (arch portability), multiple macOS
# and Windows versions. A FAIL on any platform is a binary users would receive.
#
# NON-GATING: workflow_dispatch + push to qa/smoke-** only (the full ~10-platform
# build is heavy, so it is opt-in rather than on every qa push).
name: Smoke (all platforms)
on:
workflow_dispatch:
push:
branches: ['qa/smoke-**']
permissions:
contents: read
jobs:
# ── Unix: linux amd64+arm64 (incl. older glibc 22.04), darwin arm64+amd64 ──
smoke-unix:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04 # older glibc — AlmaLinux/#182 portability class
cc: gcc
cxx: g++
- os: ubuntu-24.04
cc: gcc
cxx: g++
- os: ubuntu-22.04-arm
cc: gcc
cxx: g++
- os: ubuntu-24.04-arm
cc: gcc
cxx: g++
- os: macos-14 # arm64
cc: cc
cxx: c++
- os: macos-15 # arm64
cc: cc
cxx: c++
- os: macos-15-intel # x86_64
cc: cc
cxx: c++
runs-on: ${{ matrix.os }}
timeout-minutes: 240
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install deps (Linux)
if: startsWith(matrix.os, 'ubuntu')
run: sudo apt-get update && sudo apt-get install -y zlib1g-dev python3 git
- name: Build (production path with explicit test seams)
run: scripts/build.sh CC=${{ matrix.cc }} CXX=${{ matrix.cxx }} TEST_SEAMS=1
- name: Smoke invariants
run: |
chmod +x scripts/smoke-invariants.sh
scripts/smoke-invariants.sh build/c/codebase-memory-mcp
# ── Windows x64: 2022 + 2025 (msys2 CLANG64) ──────────────────────────────
smoke-windows-x64:
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
runs-on: ${{ matrix.os }}
timeout-minutes: 240
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2
with:
msystem: CLANG64
path-type: inherit
install: >-
mingw-w64-clang-x86_64-clang
mingw-w64-clang-x86_64-zlib
mingw-w64-clang-x86_64-python3
make
git
coreutils
- name: Build (production path with explicit test seams)
shell: msys2 {0}
run: scripts/build.sh CC=clang CXX=clang++ TEST_SEAMS=1
- name: Smoke invariants
shell: msys2 {0}
run: |
chmod +x scripts/smoke-invariants.sh
BIN=build/c/codebase-memory-mcp
[ -f "${BIN}.exe" ] && BIN="${BIN}.exe"
scripts/smoke-invariants.sh "$BIN"
# ── Windows arm64: windows-11-arm (msys2 CLANGARM64) — experimental ───────
# Best-effort: surfaces whether our binary builds + smokes on Windows on ARM.
smoke-windows-arm:
runs-on: windows-11-arm
timeout-minutes: 240
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2
with:
msystem: CLANGARM64
path-type: inherit
install: >-
mingw-w64-clang-aarch64-clang
mingw-w64-clang-aarch64-zlib
mingw-w64-clang-aarch64-python3
make
git
coreutils
- name: Build (production path with explicit test seams)
shell: msys2 {0}
run: scripts/build.sh CC=clang CXX=clang++ TEST_SEAMS=1
- name: Smoke invariants
shell: msys2 {0}
run: |
chmod +x scripts/smoke-invariants.sh
BIN=build/c/codebase-memory-mcp
[ -f "${BIN}.exe" ] && BIN="${BIN}.exe"
scripts/smoke-invariants.sh "$BIN"