The ci-cpp image was likely built for linux/amd64; the eulernest runner is linux/arm64 (Raspberry Pi), so the container exited immediately without running any steps (task 102 log: 10 lines, no step output). Fix: run directly on the host runner and install cmake/g++ via apt-get (same approach as the previously working workflow). Also pin --platform=linux/arm64 in Dockerfile.ci-cpp so the next image build produces the correct architecture. Once the image is pushed, re-add the container: block to the workflow. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47 lines
1.4 KiB
YAML
47 lines
1.4 KiB
YAML
name: C++ Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- dev
|
|
- "claude/**"
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: eulernest
|
|
# container image intentionally omitted until ci-cpp:latest is
|
|
# rebuilt for linux/arm64 and pushed to git.eulernest.eu
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install build tools
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -y --no-install-recommends cmake g++ git ca-certificates
|
|
|
|
- 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 "TOTAL: ${total:-0} | PASSED: $passed | FAILED: ${failed:-0} | SKIPPED: ${skipped:-0}"
|
|
fi
|