Skip to content

fix(ci): revert axum-kbve-e2e to ubuntu-latest runner#7718

Merged
h0lybyte merged 7 commits intodevfrom
trunk/axum-kbve-e2e-fix-1772839123
Mar 7, 2026
Merged

fix(ci): revert axum-kbve-e2e to ubuntu-latest runner#7718
h0lybyte merged 7 commits intodevfrom
trunk/axum-kbve-e2e-fix-1772839123

Conversation

@h0lybyte
Copy link
Member

@h0lybyte h0lybyte commented Mar 7, 2026

Summary

  • ARC self-hosted runner pods lack ephemeral storage for Docker BuildKit
  • Docker build dies during base image layer extraction (exit 130) before even reaching the Astro build
  • Reverts axum-kbve-e2e back to ubuntu-latest which has proper Docker/BuildKit support

Root cause

The ARC runner's Docker-in-Docker setup can't store BuildKit layers. The build fails at #12 extracting sha256:... (pulling node:24-slim), not during the Astro build. This is a storage/infrastructure limitation, not a memory issue.

What stays

  • Dockerfile Astro memory capped at 4096MB (actual OOM fix for ubuntu-latest)
  • docker-test-app.yml runner input + 60min timeout (available for future use)
  • matrix.runner || 'ubuntu-latest' fallback in ci-main.yml

Test plan

  • CI axum-kbve-e2e job passes on ubuntu-latest with 4096MB Dockerfile

🤖 Generated with Claude Code

h0lybyte added 6 commits March 6, 2026 18:20
The Dockerfile was building Astro from scratch inside a node:24-slim
container (Stage A), duplicating the work already done by container-prep.
This took 150s+ in CI and got killed with SIGINT (exit 130), failing
the axum-kbve-e2e test.

Replace the node:24-slim astro-builder stage with a direct COPY of the
pre-built output from container-prep (apps/kbve/axum-kbve/dist/). The
container target already depends on container-prep, so the pre-built
files are guaranteed to exist in the build context.
The Astro build inside Docker was requesting 8GB heap
(--max-old-space-size=8192) with 4 threads, exceeding the ~7GB available
on GitHub Actions runners inside buildkit. This caused the build to get
killed with SIGINT (exit 130) while rendering itemdb pages.

Reduce to 4096MB heap and 2 threads to stay within CI runner memory
limits while keeping the Dockerfile self-contained.
- Add runner input to docker-test-app.yml (default: ubuntu-latest)
- Route axum-kbve-e2e to arc-runner-set via matrix runner field
- Add timeout-minutes: 60 to prevent CI hangs
- Keep Dockerfile Astro memory at 4096MB as safety net
ARC runner pods lack ephemeral storage for Docker BuildKit — the build
dies during base image layer extraction (exit 130) before reaching the
Astro build. Keep ubuntu-latest which has proper Docker support.

The Dockerfile memory reduction (4096MB) remains as the actual OOM fix.
The runner input + timeout on docker-test-app.yml stays for future use.
The DinD sidecar now has a dedicated emptyDir at /var/lib/docker
(added in values.yaml), so Docker BuildKit has proper disk access
instead of using the container overlay layer.
ARC runners have 24Gi memory — no need to cap at 4096MB. Revert
to original UV_THREADPOOL_SIZE=4 and --max-old-space-size=8192.
@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@h0lybyte h0lybyte merged commit aa9827b into dev Mar 7, 2026
5 checks passed
@h0lybyte h0lybyte deleted the trunk/axum-kbve-e2e-fix-1772839123 branch March 7, 2026 05:23
@github-actions github-actions bot mentioned this pull request Mar 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant