Skip to content

Commit 33f45a2

Browse files
authored
ci: validation script (#3)
1 parent 4ed5235 commit 33f45a2

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
8+
jobs:
9+
validate:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v4
14+
with:
15+
submodules: recursive
16+
17+
- name: Install dependencies
18+
run: sudo apt-get update && sudo apt-get install -y cmake socat
19+
20+
- name: Run validation
21+
run: ./scripts/validate.sh

scripts/validate.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env bash
2+
# scripts/validate.sh — full build + test validation
3+
#
4+
# Runs the complete validation suite:
5+
# 1. CMake configure (all preset, fresh)
6+
# 2. CMake build (all preset, clean-first)
7+
# 3. CTest
8+
# 4. Gateway loopback test (requires socat)
9+
# 5. Multinode test
10+
#
11+
# Usage: ./scripts/validate.sh
12+
# Run from the repository root.
13+
14+
set -euo pipefail
15+
16+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
17+
cd "$REPO_ROOT"
18+
19+
echo "=== 1/5 CMake configure (preset: all, fresh) ==="
20+
cmake --preset all --fresh
21+
22+
echo ""
23+
echo "=== 2/5 CMake build (preset: all, clean-first) ==="
24+
cmake --build --preset all --clean-first
25+
26+
echo ""
27+
echo "=== 3/5 CTest ==="
28+
ctest --test-dir build
29+
30+
echo ""
31+
echo "=== 4/5 Gateway loopback test ==="
32+
./scripts/gateway_loopback_test.sh
33+
34+
echo ""
35+
echo "=== 5/5 Multinode test ==="
36+
./scripts/multinode_test.sh
37+
38+
echo ""
39+
echo "=== All validation steps passed ==="

0 commit comments

Comments
 (0)