Both CI workflows are red on main #87

Closed
opened 2026-08-07 20:03:04 +00:00 by coilyco-ops · 1 comment
Member

Symptom

Every run of both workflows has failed since adb318c. ci.yml (gate) and build-publish.yml (publish) are red on main at d8d08b2, and the last image published to the registry was 7de15ed at 2026-08-06T03:43Z.

Forgejo is on 15.0.2, so the Actions log endpoints the tooling expects (Forgejo 16) return 404 and the web log route reports a missing task record for every run in every repo. Both failures below were reproduced locally instead, one in the CI container image and one against a local Docker daemon.

Cause 1 - gate: docs/FEATURES.md exceeds the size cap

docs/FEATURES.md is 5933 chars. catalog-doc-size and documentation-layout both fail it against a 4000-char cap.

It passes on a developer host and fails in CI because the two run different validator code. .pre-commit-config.yaml pins rev: v0.221.0, where docs/FEATURES.md gets the 12,500-char trifecta cap. The CI container sets PYTHONPATH=/opt/agentic-os/python, so the image's own agentic_os shadows the pinned checkout, and that version applies a dedicated 4000-char FEATURES_MAX_CHARS.

The 4000-char cap is the intended one - FEATURES.md is meant to be a coarse inventory - so the fix is to trim the file, not to raise the cap. The shadowing itself is worth a separate look, since a pinned rev currently does not determine which validator CI runs.

Cause 2 - publish: TARGETARCH is empty under the classic builder

adb318c added ARG TARGETARCH plus an arch case to the Dockerfile. TARGETARCH is a BuildKit-only automatic build arg. The publish lane's dind daemon runs the classic builder, which leaves it unset, so the case takes its * branch and exits 1 within seconds of the job starting. That matches the observed ~6s job duration and the exact commit where publishing stopped.

Reproduced locally: classic builder fails with unsupported target architecture: in about 2.5s, with or without --platform. BuildKit populates it and passes. galaxy-gen, green on the same runner label, never reads TARGETARCH and passes --platform linux/amd64.

Fix

  • Trim docs/FEATURES.md to the coarse inventory shape, under both the 4000-char and 80-line caps. Detail stays in the per-feature docs/*.md pages it already links.
  • Default the arg to ARG TARGETARCH=amd64 so the classic builder takes the amd64 path while BuildKit still overrides it with the real value.
  • Pass --platform linux/amd64 in scripts/publish-image.sh, matching the galaxy-gen publisher.

Acceptance

  • bash scripts/test-gate.sh passes inside agentic-os:release.
  • The arch case resolves under classic-no-platform, classic-with-platform, and BuildKit.
  • Both workflows go green on main.

Verified before landing: the gate exits 0 in the CI container in 3m10s with 98 tests passing, and all three builder modes resolve trunk_arch=x86_64.

Land through direct-to-main.

## Symptom Every run of both workflows has failed since `adb318c`. `ci.yml` (`gate`) and `build-publish.yml` (`publish`) are red on `main` at `d8d08b2`, and the last image published to the registry was `7de15ed` at 2026-08-06T03:43Z. Forgejo is on 15.0.2, so the Actions log endpoints the tooling expects (Forgejo 16) return 404 and the web log route reports a missing task record for every run in every repo. Both failures below were reproduced locally instead, one in the CI container image and one against a local Docker daemon. ## Cause 1 - `gate`: `docs/FEATURES.md` exceeds the size cap `docs/FEATURES.md` is 5933 chars. `catalog-doc-size` and `documentation-layout` both fail it against a 4000-char cap. It passes on a developer host and fails in CI because the two run different validator code. `.pre-commit-config.yaml` pins `rev: v0.221.0`, where `docs/FEATURES.md` gets the 12,500-char trifecta cap. The CI container sets `PYTHONPATH=/opt/agentic-os/python`, so the image's own `agentic_os` shadows the pinned checkout, and that version applies a dedicated 4000-char `FEATURES_MAX_CHARS`. The 4000-char cap is the intended one - FEATURES.md is meant to be a coarse inventory - so the fix is to trim the file, not to raise the cap. The shadowing itself is worth a separate look, since a pinned `rev` currently does not determine which validator CI runs. ## Cause 2 - `publish`: `TARGETARCH` is empty under the classic builder `adb318c` added `ARG TARGETARCH` plus an arch `case` to the Dockerfile. `TARGETARCH` is a BuildKit-only automatic build arg. The publish lane's dind daemon runs the classic builder, which leaves it unset, so the `case` takes its `*` branch and exits 1 within seconds of the job starting. That matches the observed ~6s job duration and the exact commit where publishing stopped. Reproduced locally: classic builder fails with `unsupported target architecture:` in about 2.5s, with or without `--platform`. BuildKit populates it and passes. `galaxy-gen`, green on the same runner label, never reads `TARGETARCH` and passes `--platform linux/amd64`. ## Fix - Trim `docs/FEATURES.md` to the coarse inventory shape, under both the 4000-char and 80-line caps. Detail stays in the per-feature `docs/*.md` pages it already links. - Default the arg to `ARG TARGETARCH=amd64` so the classic builder takes the amd64 path while BuildKit still overrides it with the real value. - Pass `--platform linux/amd64` in `scripts/publish-image.sh`, matching the `galaxy-gen` publisher. ## Acceptance - `bash scripts/test-gate.sh` passes inside `agentic-os:release`. - The arch case resolves under classic-no-platform, classic-with-platform, and BuildKit. - Both workflows go green on `main`. Verified before landing: the gate exits 0 in the CI container in 3m10s with 98 tests passing, and all three builder modes resolve `trunk_arch=x86_64`. Land through direct-to-main.
Author
Member

Landed as bde07f6 on main.

Both workflows are green on that commit, the first pass since adb318c:

  • gate run 162 - success
  • publish run 161 - success

forgejo.coilysiren.me/coilyco-gaming/factory-game-v3:bde07f6937b40cea26efa17a1a2435b8fe095243 is in the registry as of 2026-08-07T20:08:34Z, the first image published since 7de15ed on 2026-08-06.

The cross-repo half is filed as coilyco-flight-deck/agentic-os#971.

Landed as `bde07f6` on `main`. Both workflows are green on that commit, the first pass since `adb318c`: - `gate` run 162 - success - `publish` run 161 - success `forgejo.coilysiren.me/coilyco-gaming/factory-game-v3:bde07f6937b40cea26efa17a1a2435b8fe095243` is in the registry as of 2026-08-07T20:08:34Z, the first image published since `7de15ed` on 2026-08-06. The cross-repo half is filed as coilyco-flight-deck/agentic-os#971.
Sign in to join this conversation.
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
coilyco-gaming/factory-game-v3#87
No description provided.