7a07251acf
Releases now ship as often as changes land, so nothing they leave behind may grow without bound. Workflow uploads keep 3 days (nightly parity logs 7); the releases carry their own assets. tools/ci/runner-gc.sh, run every 6 hours by launchd on the Mac mini from a copy of main, skips a runner in a job, removes a checkout's cargo build folders past 12 GB and harness work folders under .local/ untouched for 3 days, and keeps the 2 newest shared preparations while no runner works. The runners build through the machine's sccache, so what it removes comes back from the cache. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
1.1 KiB
Bash
Executable File
22 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# The tools the vanilla harnesses need, on the self-hosted Mac mini runner (label horizon-game): its service
|
|
# starts with a bare PATH. Python 3.13 and the JDK pinned by research-lock.json come from the machine, never
|
|
# from a download. Writes them to $GITHUB_PATH and $GITHUB_ENV for the next steps.
|
|
set -euo pipefail
|
|
java_major=$(sed -n 's/.*"java_major": *\([0-9]*\).*/\1/p' research-lock.json | head -1)
|
|
bin="$RUNNER_TEMP/horizon-bin"
|
|
mkdir -p "$bin"
|
|
if [ "$(uname)" = Darwin ]; then
|
|
ln -sfn /opt/homebrew/bin/python3.13 "$bin/python3"
|
|
ln -sfn /opt/homebrew/bin/python3.13 "$bin/python"
|
|
java_home=$(/usr/libexec/java_home -v "$java_major")
|
|
{ echo "$bin"; echo "$java_home/bin"; echo /opt/homebrew/bin; } >> "$GITHUB_PATH"
|
|
echo "JAVA_HOME=$java_home" >> "$GITHUB_ENV"
|
|
# Builds go through the machine's sccache (shared with ~/fleet/rbuild), so the build folders runner-gc.sh
|
|
# removes come back from the cache instead of compiling cold.
|
|
if [ -x /opt/homebrew/bin/sccache ]; then
|
|
{ echo "RUSTC_WRAPPER=/opt/homebrew/bin/sccache"; echo "CARGO_INCREMENTAL=0"; } >> "$GITHUB_ENV"
|
|
fi
|
|
fi
|
|
echo "HORIZON_NO_AUDIO=1" >> "$GITHUB_ENV"
|