Skip to content

feat(accrete): parametric giant migration model behind -r (Phase 1) #248

feat(accrete): parametric giant migration model behind -r (Phase 1)

feat(accrete): parametric giant migration model behind -r (Phase 1) #248

Workflow file for this run

name: CI
on:
push:
pull_request:
# Auto-cancel superseded runs of this workflow on the same ref so redundant
# builds for commits that no longer matter don't starve the free-tier pool.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-test:
runs-on: ubuntu-latest
# The output layer (PlanetRow.h) uses C++26 static reflection (P2996) +
# annotations (P3394), which currently require GCC >= 16 with -freflection.
# Mainline clang has no reflection, so this project is GCC-16-only and the
# former clang + Windows lanes were dropped. The official gcc:16 image ships
# GCC 16.1 prebuilt; we just add cmake + ninja on top.
container: gcc:16
name: build-and-test (gcc-16, C++26)
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install build tools
run: |
apt-get update
apt-get install -y --no-install-recommends cmake ninja-build
# The `viewer` target needs raylib (GLFW + a display backend) at configure
# time and is unrelated to the generator; keep it out of CI entirely.
- name: Configure
run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DSTARGEN_BUILD_VIEWER=OFF
- name: Build stargen
run: cmake --build build --target stargen -j 2
- name: Build stargen_tests
run: cmake --build build --target stargen_tests -j 2
# Skip local-only tests (golden_regression): they byte-compare ~20-sig-fig
# FP output and only match the exact toolchain that produced the goldens.
# They still run locally via verify.sh and the pre-commit hook.
- name: Test
run: ctest --test-dir build --output-on-failure --label-exclude local-only