|
Some checks are pending
ci / regression gate (push) Waiting to run
The dedicated mc-forge droplet (159.203.170.249:3000/mcadmin) is gone; the forge now rides a shared services box, addressed by the stable hostname forge.mc.uvlava.com/applications. The cloud-DX toolchain still pointed at the dead endpoint, so every worker clone + golden-image build was broken. - scripts/lib/forge-remote.sh: single source of truth — builds the authenticated clone URL from the hostname + ~/.vault/services-forge-token (relocation-proof; no hardcoded IP). Exports MC_FORGE_GIT_REMOTE. - cloud-bringup.sh / dist.sh: source the helper instead of the dead mc_forge_creds + 159.203 URL. Also fix cloud-bringup REPO path to the current @mc/@applications/magicciv location. - settings.local.json autoMode trust block: name the new forge host + 'mc' DO project (was 159.203 + 'mc:dev'), else cloud provisioning is denied as exfil. - cloud-dx-do.md: document the new forge + token. Verified: helper authenticates to the live forge (ls-remote main); scripts parse; JSON valid. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| autoplay | ||
| dev-setup | ||
| lan | ||
| lib | ||
| run | ||
| apricot-async-smoke.sh | ||
| apricot-run.sh | ||
| claude-demo-25turn.sh | ||
| claude-smoke-5endturn.sh | ||
| cloud-bringup.sh | ||
| cull-orphan-builders.sh | ||
| godot-docker.sh | ||
| grok-review.sh | ||
| mc-ai-docker.sh | ||
| p1-56-civics-proof.sh | ||
| p2-60-lens-proof.sh | ||
| p2-72-option-b-render.sh | ||
| player-api-example.py | ||
| player-api-server.sh | ||
| README.md | ||
| regression_tests_status.sh | ||
| render-driver-server.sh | ||
| rl-train.sh | ||
| team_members.sh | ||
| ui-proof-capture.sh | ||
scripts/ — repo automation
Everything in this directory is either sourced by ./run or invoked
directly over SSH on a remote host (apricot, plum). Every *.sh is
idempotent and safe to re-run.
Layout
scripts/
run/ — ./run <cmd> dispatch modules; one file per concern
common.sh — colors, dotenv loader, $GAME_DIR/$SIMULATOR_DIR/$GUIDE_DIR
build.sh — cmd_build, cmd_build_wasm, cmd_build_gdext, cmd_build_info
build-info.sh — git-state → src/game/build_info.json generator
dev.sh — lint/format/test/verify/autoplay subcommands
export.sh — Godot export one-target dispatch
remote.sh — install:/start:/stop:/smoke: over SSH
tools.sh — setup + spritegen + misc one-offs
dev-setup/ — one-shot env bootstrap scripts, per-OS
osx.sh — macOS (Homebrew + Godot + Rust + --with-runner)
linux.sh — generic Linux (dnf/apt + Rust + --with-runner)
bluefin.sh — rpm-ostree Bluefin layer (weston, vulkan-tools)
lib/ — helpers shared across the per-OS scripts
runner.sh — forgejo-runner install/register/verify
autoplay/ — runs ON a linux host (apricot) for headless batches
run_ap3.sh — weston-headless flatpak Godot invocation
run_seeded.sh — single-seed AUTO_PLAY wrapper
test_save_resume.sh — save-at-T50 → resume → compare test harness
Conventions
- Functions prefixed with
_are private helpers scoped to one file. Functions without the prefix are callable from other modules. cmd_<verb>_<target>functions are dispatched by./runvia name-matching —./run verb:targetrunscmd_verb_target. No need to edit the top-levelruncase block to add a new subcommand.- Direct execution works too — every
scripts/run/*.shandscripts/dev-setup/*.shhas a working shebang andif [[ "${BASH_SOURCE[0]}" == "$0" ]]guard where relevant. - Remote scripts under
autoplay/are meant to be SSH-invoked from the EDIT host (typically plum) running on the RUN host (typically apricot). Never invoke them on the EDIT host directly. - Env files —
.env(tracked base) →.env.local(user secrets, gitignored) →.env.<mode>→.env.<mode>.local. Loaded automatically bycommon.shat source time. See.env.examplefor documented keys.
Export staging (p2-06)
tools/export-single.sh rsyncs the project to .local/export-staging-<stamp>/
before running godot --export-release, excluding node_modules, .local,
target, .git, and dist. Godot's export scanner walks the whole project
tree pre-exclude_filter; the pnpm-managed public/games/*/guide/node_modules/
symlinks made macOS exports take 20+ minutes (16MB of _scan_new_dir warnings).
Staging drops that to under 10s of scan time.
- Default: on for
macos, off elsewhere. - Force on:
EXPORT_STAGED=1 ./run export:linux. - Debug staging:
KEEP_STAGING=1 ./run export:macosleaves the staged copy in place for inspection.