mirror of
https://github.com/redwoodjs/local-ci.git
synced 2026-09-19 07:54:29 +08:00
daa536c61e
Move per-run log artifacts out of the runner's tmp working dir into a stable, agent-ci-owned directory next to the per-branch checks JSON (default `<stateDir>/logs/`, override via AGENT_CI_LOG_DIR). Log paths recorded in the run-result JSON now survive OS-level pruning of `os.tmpdir()`. Add an opportunistic, throttled cleanup at the start of `agent-ci run` plus an explicit `agent-ci clean` subcommand. Policy: never delete a run dir referenced by any branch's checks JSON, then keep newest N runs, then drop runs older than M days. Knobs: AGENT_CI_LOG_RETAIN_DAYS=7, AGENT_CI_LOG_RETAIN_RUNS=20, AGENT_CI_LOG_PRUNE=0 to disable. O_EXCL lockfile + last-prune stamp guard against concurrent runs and per-job fan-out. Also fix `buildStepEnv` in workflow-parser.ts to thread an envContext through `expandExpressions`, completing PR #320's env.* expansion support — `${{ env.JOB_KEY }}` inside another step's `env:` value now resolves to the workflow- or job-level value instead of an empty string. This made smoke-env-context.yml pass under agent-ci-dev. Closes #312. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>