chore(ci): drop Forgejo Actions CI, verify manually on the target VM (T-014) #2

Merged
ahitosly merged 5 commits from ci/T-014-forgejo-ci into main 2026-09-05 22:20:45 +02:00
Owner

Ce que fait cette PR :

  • Corrige deux bugs reels du Dockerfile trouves en verifiant que le job build passe :
    README.md jamais copie avant le build du package (Hatchling), et collision de nom entre
    l'utilisateur operator cree et le groupe systeme Debian du meme nom.
  • Supprime .forgejo/workflows/ci.yml. Le runner Forgejo Actions partage son reseau
    Docker avec forgejo/Postgres ; le churn de conteneurs de job y rend le DNS embarque
    de Docker intermittemment defaillant (server misbehaving sur lookup db), au point
    de casser le push git lui-meme a deux reprises pendant le diagnostic. Voir
    docs/DECISIONS.md ADR-0011 pour le detail et les alternatives ecartees.
  • Les verifications (scripts/check.sh, build image, suite d integration) se font
    desormais a la main, par un humain ou par Claude Code en session sur la VM cible.
  • T-014 est cloturee comme abandonnee (pas construite telle que formulee initialement).
Ce que fait cette PR : - Corrige deux bugs reels du Dockerfile trouves en verifiant que le job `build` passe : README.md jamais copie avant le build du package (Hatchling), et collision de nom entre l'utilisateur `operator` cree et le groupe systeme Debian du meme nom. - Supprime `.forgejo/workflows/ci.yml`. Le runner Forgejo Actions partage son reseau Docker avec `forgejo`/Postgres ; le churn de conteneurs de job y rend le DNS embarque de Docker intermittemment defaillant (`server misbehaving` sur `lookup db`), au point de casser le push git lui-meme a deux reprises pendant le diagnostic. Voir `docs/DECISIONS.md` ADR-0011 pour le detail et les alternatives ecartees. - Les verifications (`scripts/check.sh`, build image, suite d integration) se font desormais a la main, par un humain ou par Claude Code en session sur la VM cible. - T-014 est cloturee comme abandonnee (pas construite telle que formulee initialement).
ci(forgejo): mount docker socket into build/integration jobs (T-014)
Some checks failed
ci / lint (pull_request) Successful in 8s
ci / typecheck (pull_request) Successful in 11s
ci / unit (pull_request) Successful in 8s
ci / integration (pull_request) Failing after 0s
ci / build (pull_request) Failing after 0s
8903af351e
Both jobs lacked an explicit `container` block, so they inherited the
default image bound to the `docker` runner label (node:22-bookworm),
which has neither the docker CLI nor socket access — every `docker`
command failed immediately with "command not found". Add a container
with the host socket bind-mounted (DooD) and install the docker CLI as
a step. Requires the runner's config.yml to allow
/var/run/docker.sock in container.valid_volumes (done out-of-band).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bhEDzC3DQP1NFsBfMhrd6
ci(forgejo): drop redundant docker.sock mount, keep CLI install (T-014)
Some checks failed
ci / lint (pull_request) Successful in 7s
ci / integration (pull_request) Successful in 42s
ci / typecheck (pull_request) Successful in 12s
ci / unit (pull_request) Successful in 7s
ci / build (pull_request) Failing after 22s
d6bd699345
The runner already auto-mounts its own docker.sock into every job
container (config.yml container.docker_host), so declaring it again
via container.options collided with "Duplicate mount point" on the
first real run (PR #2). The socket was never the problem, only the
missing CLI — keep that step, drop the mount.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bhEDzC3DQP1NFsBfMhrd6
fix(docker): copy README.md before building the local package (T-013)
Some checks failed
ci / lint (pull_request) Failing after 28s
ci / typecheck (pull_request) Failing after 38s
ci / unit (pull_request) Failing after 34s
ci / build (pull_request) Has been skipped
ci / integration (pull_request) Has been skipped
5a766f5155
`uv sync --no-dev` (the second one, which builds hermes-operator itself
rather than just its deps) failed: pyproject.toml declares
readme = "README.md" but the file was never copied into the image, so
hatchling's metadata validation raised OSError. Found while verifying
the `build` CI job actually goes green (T-014).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bhEDzC3DQP1NFsBfMhrd6
python:3.12-slim already ships a system group named "operator" (Debian
legacy, GID 37). `useradd --create-home operator` tries to create a
same-named group for the new user and fails on the collision
("group operator exists"). Skip that with --no-user-group, put the
user in nogroup instead. Verified locally: image builds, smoke test
(import hermes_operator; print __version__) passes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bhEDzC3DQP1NFsBfMhrd6
The runner's job containers share the "forge" Docker network with
forgejo/Postgres. That churn makes Docker's embedded DNS resolver
intermittently misbehave under load ("server misbehaving" on
lookup db), which broke build/integration and, twice during this same
session, git push itself (the pre-receive hook depends on the same
resolution for its internal callback). See docs/DECISIONS.md ADR-0011
for the full writeup and the alternatives considered.

Remove .forgejo/workflows/ci.yml. Checks (ruff, mypy, pytest, image
build, integration suite) now run manually via scripts/check.sh, by a
human or by Claude Code running directly on the target VM — no more
push/PR-triggered automation. T-014 is closed as abandoned rather than
completed as originally scoped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bhEDzC3DQP1NFsBfMhrd6
ahitosly changed title from ci(forgejo): mount docker socket into build/integration jobs (T-014) to chore(ci): drop Forgejo Actions CI, verify manually on the target VM (T-014) 2026-09-05 22:19:06 +02:00
ahitosly deleted branch ci/T-014-forgejo-ci 2026-09-05 22:20:45 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
cloud-rennais/hermes-swarm!2
No description provided.