chore(deps): bump actions/checkout from 6.0.2 to 7.0.0 #201
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| pull_request: {} | |
| push: | |
| branches: [main] | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| working-directory: game | |
| steps: | |
| - uses: actions/checkout@v7.0.0 | |
| - name: Install Linux deps | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev libudev-dev libxkbcommon-dev libwayland-dev pkg-config | |
| - name: Install Rust 1.95.0 | |
| run: | | |
| rustup toolchain install 1.95.0 --profile minimal --component rustfmt --component clippy | |
| rustup show active-toolchain | |
| rustc --version | |
| cargo --version | |
| - uses: Swatinem/rust-cache@v2.9.1 | |
| continue-on-error: true | |
| with: | |
| workspaces: game -> target | |
| - uses: actions/setup-python@v6.2.0 | |
| with: | |
| python-version: "3.x" | |
| - name: dependency drift report | |
| if: runner.os == 'Linux' | |
| run: python tools/dependency_drift_report.py --workspace-root . --format markdown | |
| - name: cargo fmt | |
| run: cargo fmt --all -- --check | |
| - name: cargo check | |
| run: cargo check --workspace --all-targets | |
| - name: cargo clippy | |
| run: cargo clippy --workspace --all-targets -- -D warnings | |
| - name: cargo test | |
| run: cargo test --workspace | |
| - name: cargo build release | |
| run: cargo build --release | |
| - name: cf-mod validate content | |
| run: cargo run --release -p cf-mod -- validate content/ | |
| - name: schemas in sync (dump_schemas --check) | |
| run: cargo run --release -p cf-control --example dump_schemas -- --check | |
| - name: cfctl observe smoke (60 Hz) | |
| run: cargo run --release -p cfctl -- observe --once --scenario m0_blank --format json | |
| - name: cfctl run smoke (60 Hz) | |
| run: cargo run --release -p cfctl -- run --scenario m0_blank --ticks 300 --tick-rate-hz 60 --write-run-bundle --run-bundle-dir ../prototype_runs/native | |
| - name: cfctl run smoke (120 Hz) | |
| run: cargo run --release -p cfctl -- run --scenario m0_blank --ticks 240 --tick-rate-hz 120 --write-run-bundle --run-bundle-dir ../prototype_runs/native | |
| - name: cf-app headless run-seconds 5 | |
| shell: bash | |
| run: cargo run --release -p cf-app -- --scenario m0_blank --headless-smoke --run-seconds 5 --write-run-bundle --run-bundle-dir ../prototype_runs/native | |
| - name: validate run bundles (REQUIRED) | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| BUNDLES=$(ls -dt ../prototype_runs/native/m0_* | head -n3) | |
| if [ -z "$BUNDLES" ]; then | |
| echo "No M0 run bundles produced; failing CI." | |
| exit 1 | |
| fi | |
| for B in $BUNDLES; do | |
| echo "Validating $B" | |
| python tools/prototype_run_check.py "$B" | |
| done | |
| - name: enforce repo-root prototype_runs path (M0.4-F7) | |
| shell: bash | |
| working-directory: ${{ github.workspace }} | |
| run: | | |
| set -euo pipefail | |
| # The corefall run-bundle contract requires every bundle to live under | |
| # `<repo-root>/prototype_runs/native/`. If any other `prototype_runs/` directory | |
| # exists anywhere else in the working tree (e.g. `game/prototype_runs/` because | |
| # a binary defaulted to a cwd-relative path), fail CI. | |
| STRAY=$(find . -type d -name prototype_runs \ | |
| -not -path './prototype_runs' \ | |
| -not -path './prototype_runs/*' \ | |
| -not -path './target/*' \ | |
| -not -path './game/target/*' \ | |
| -not -path './.git/*' \ | |
| || true) | |
| if [ -n "$STRAY" ]; then | |
| echo "ERROR: prototype_runs/ directories found outside repo root:" | |
| echo "$STRAY" | |
| echo "All run bundles MUST live under <repo-root>/prototype_runs/native/. See cf_replay::bundle_paths." | |
| exit 1 | |
| fi | |
| echo "OK: only ./prototype_runs exists (or none)." | |
| - name: schema-version drift gate | |
| run: cargo run --release -p cf-control --example dump_schemas -- --check | |
| - name: check status surfaces | |
| if: runner.os == 'Linux' | |
| shell: bash | |
| working-directory: ${{ github.workspace }} | |
| run: bash game/tools/check_status_surfaces.sh | |
| - name: cargo audit (CVE check) | |
| if: runner.os == 'Linux' | |
| continue-on-error: true | |
| run: | | |
| cargo install cargo-audit --quiet 2>/dev/null || true | |
| cargo audit || echo "::warning::cargo audit found issues" | |
| - name: inventory println in production code | |
| if: runner.os == 'Linux' | |
| shell: bash | |
| working-directory: ${{ github.workspace }} | |
| continue-on-error: true | |
| run: bash game/tools/inventory_println.sh | |
| - name: inventory thread_rng in sim crates | |
| if: runner.os == 'Linux' | |
| shell: bash | |
| working-directory: ${{ github.workspace }} | |
| run: bash game/tools/inventory_thread_rng.sh | |
| - name: inventory unsafe blocks | |
| if: runner.os == 'Linux' | |
| shell: bash | |
| working-directory: ${{ github.workspace }} | |
| continue-on-error: true | |
| run: bash game/tools/inventory_unsafe_blocks.sh |