Skip to content

chore(deps): bump actions/checkout from 6.0.2 to 7.0.0 #201

chore(deps): bump actions/checkout from 6.0.2 to 7.0.0

chore(deps): bump actions/checkout from 6.0.2 to 7.0.0 #201

Workflow file for this run

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