# cimery — GitHub Actions CI (ADR-003 A3: GitHub for Win/macOS builds) # Mirrors Gitea CI but adds Windows and macOS runners. # OcctKernel build requires Windows + VS Build Tools. name: CI on: push: branches: [main] pull_request: branches: [main] env: CARGO_TERM_COLOR: always RUST_LOG: info jobs: # ── Cross-platform check ─────────────────────────────────────────────────── check: name: check (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: cargo check (PureRust) run: cargo check --workspace # ── Tests ────────────────────────────────────────────────────────────────── test: name: test (${{ matrix.os }}) runs-on: ${{ matrix.os }} needs: check strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: cargo test (workspace, PureRust) run: cargo test --workspace # ── Windows OCCT build (optional, gate on branch) ───────────────────────── test-occt-windows: name: test OCCT (Windows) runs-on: windows-latest # Only run on main or release branches to save minutes if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - name: Install OCCT (via vcpkg) shell: pwsh run: | git clone https://github.com/microsoft/vcpkg C:\vcpkg --depth=1 C:\vcpkg\bootstrap-vcpkg.bat -disableMetrics C:\vcpkg\vcpkg.exe install opencascade:x64-windows echo "VCPKG_ROOT=C:\vcpkg" >> $env:GITHUB_ENV - name: cargo test (OCCT) shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" cargo test -p cimery-kernel --features occt # ── Lint ─────────────────────────────────────────────────────────────────── clippy: name: clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: clippy - uses: Swatinem/rust-cache@v2 - run: cargo clippy --workspace -- -D warnings