ci: build and smoke-test the Image on every PR #20
No reviewers
Labels
No labels
bug
enhancement
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
vicoli-oss/docker-forgejo-mcp!20
Loading…
Reference in a new issue
No description provided.
Delete branch "piscis/forgejo-6-ci-implement"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #6
Summary
A
ciworkflow builds the Image for amd64 and arm64 from the Pin and smoke-tests both, on every PR and on manual dispatch. It never pushes.It adds one change outside the workflow, to
scripts/smoke-test.sh, because the runner's daemon is shared:Every job container starts fresh with the same PIDs, so
$$was the same across concurrent jobs. They would clash on container and network names, and one job's cleanup could delete another job's stub containers.How it was verified
PASS: 156 tools listedon both; the run's Image tags removedb3a35fb, reverted)make build(apk add git-this-package-does-not-exist), smoke test skipped, cleanup ran68e52e5, reverted)make build:ERROR: Upstream tag v3.2.0 resolves to commit e30bb7e…, but the Pin expects 0000…f6e2437apk add git→DNS: transient error. BuildKit ran the identical step once for both jobs, so the logs match to the millisecond. It's runner DNS, not a naming collision (#22)mainafter the merge, run alonedocker login, no--pushand no registry credentials.make buildonly uses--load. After all these runs,GET /api/v1/packages/vicoli-oss?type=containerstill returns[].tcp://docker_dind:2376.RUNsteps, fall back to Google DNS, which times out from the runner. Every build without a warm cache fails atapk add(probe: run 18). The runner-side fix is #22. The workaround,BUILD_NETWORK=hostin CI, is #23: runs 19–23 are green with a cold cache and concurrent jobs.Merge Danger
Door: two-way
Removing the workflow file turns it off. The
smoke-test.shchange only affects container and network names.Blast Radius: CI
Every PR gets a check that takes about 1–2 minutes. It starts privileged
tonistiigi/binfmtcontainers and removes only its ownforgejo-mcp-ci-<run_id>Image tags from the shared daemon. The build cache and shared base images stay.