README: - Remove stale Boost mention (unused dep, removed yesterday) - Document three build modes (tests-only / WITH_VIEWER / WITH_CGAL) with a comparison table and per-mode cmake commands - Add project structure overview - Fix C++20 → C++17 (actual standard used) - Fix clone URL and getting-started commands - Add CI section with Dockerfile build instructions CI: - Add .gitea/docker/Dockerfile.ci-cpp — ubuntu:22.04 with cmake, g++, git, and Node.js 20 pre-installed (Node.js needed for actions/checkout@v4 inside containers) - Update cpp-tests.yml to use ci-cpp container instead of installing build tools on every run; add JUnit XML output and summary step Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
43 lines
1.2 KiB
YAML
43 lines
1.2 KiB
YAML
name: C++ Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- dev
|
|
- "claude/**"
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: eulernest
|
|
container:
|
|
image: git.eulernest.eu/conformallab/ci-cpp:latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Configure (tests-only mode)
|
|
run: cmake -S code -B build -DCMAKE_BUILD_TYPE=Release
|
|
|
|
- name: Build test binary
|
|
run: cmake --build build --target conformallab_tests -j$(nproc)
|
|
|
|
- name: Run tests
|
|
run: >
|
|
ctest --test-dir build
|
|
--output-on-failure
|
|
--output-junit test-results.xml
|
|
|
|
- name: Show test summary
|
|
if: always()
|
|
run: |
|
|
if [ -f test-results.xml ]; then
|
|
total=$(grep -o 'tests="[0-9]*"' test-results.xml | grep -o '[0-9]*' | head -1)
|
|
failed=$(grep -o 'failures="[0-9]*"' test-results.xml | grep -o '[0-9]*' | head -1)
|
|
skipped=$(grep -o 'skipped="[0-9]*"' test-results.xml | grep -o '[0-9]*' | head -1)
|
|
passed=$(( ${total:-0} - ${failed:-0} - ${skipped:-0} ))
|
|
echo ""
|
|
echo "TOTAL: ${total:-0} | PASSED: $passed | FAILED: ${failed:-0} | SKIPPED: ${skipped:-0}"
|
|
fi
|