mirror of
https://github.com/redwoodjs/local-ci.git
synced 2026-09-19 07:54:29 +08:00
66ac2a4b6b
* test: add smoke repro for missing cc in runner image Minimal smoke workflow that calls `command -v cc` and compiles a trivial C program. Reproduces a cargo/Rust workflow failure where `linker 'cc' not found` breaks builds under agent-ci-dev because ghcr.io/actions/actions-runner:latest does not ship build-essential. CI-only change (no packages/ code modified) — no changeset. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: pluggable runner image via .github/agent-ci.Dockerfile (#208) agent-ci now discovers a user-provided Dockerfile at .github/agent-ci.Dockerfile (or .github/agent-ci/Dockerfile for builds with a COPY context), hashes its contents, builds it locally via `docker build`, and uses the resulting agent-ci-runner:<hash> tag as the default runner image. Edits trigger automatic rebuilds; identical contents reuse the cached image. This closes the gap where the minimal ghcr.io/actions/actions-runner image lacks build-essential, python3, and other toolchains that GitHub's hosted ubuntu-latest VM ships preinstalled. Workflows green on GitHub but failing locally with `linker 'cc' not found` can now opt into a richer image by dropping a 5-line Dockerfile into .github/. Resolution order (highest wins): 1. per-job `container:` (unchanged) 2. AGENT_CI_RUNNER_IMAGE env var 3. .github/agent-ci/Dockerfile (directory form, supports COPY) 4. .github/agent-ci.Dockerfile (simple form, empty context) 5. ghcr.io/actions/actions-runner:latest (default) Also adds an error-hint heuristic: when a step fails with "command not found" for cc/gcc/make/python3/pkg-config and the user is still on the default image, the failure summary includes a paste-ready Dockerfile pointing at the fix. Docs at packages/cli/runner-image.md. Dogfoods the feature by shipping .github/agent-ci.Dockerfile for this repo, which makes smoke-cc-compiler.yml (the issue #208 reproduction) pass end-to-end. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: announce first-run runner image build Print a one-time stderr notice before `docker build` fires so users understand why the first run pauses for ~60s. The message lives in stderr so log-update can't clobber it and stays in scrollback after. Docs updated to match. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: clarify that container: runs verbatim, no Dockerfile layering Spell out explicitly that a job-level container: directive bypasses .github/agent-ci.Dockerfile entirely — agent-ci does not layer the Dockerfile on top. This preserves the "same YAML runs locally and on GitHub" parity promise. Also document the two recommended ways to combine a custom base image with agent-ci's extras. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
7 lines
203 B
Docker
7 lines
203 B
Docker
FROM ghcr.io/actions/actions-runner:latest
|
|
RUN sudo apt-get update \
|
|
&& sudo apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
pkg-config \
|
|
&& sudo rm -rf /var/lib/apt/lists/*
|