Skip to content

ci: fold e2e jobs into one matrix (e2e-forgejo-15 / e2e-gitea-1.22 / e2e-plane-1.3)#17

Merged
hstern merged 1 commit into
mainfrom
chore/e2e-matrix-rename
May 24, 2026
Merged

ci: fold e2e jobs into one matrix (e2e-forgejo-15 / e2e-gitea-1.22 / e2e-plane-1.3)#17
hstern merged 1 commit into
mainfrom
chore/e2e-matrix-rename

Conversation

@hstern

@hstern hstern commented May 24, 2026

Copy link
Copy Markdown
Owner

Summary

Cosmetic: merge the two separate e2e-docker and e2e-real-plane jobs into a single e2e job with a 3-entry matrix. Job names line up in the UI as e2e-forgejo-15, e2e-gitea-1.22, e2e-plane-1.3.

What changed

  • matrix.forge.{name,image,flavor}matrix.{name,forge_image,flavor} (flattened)
  • Forge-specific steps now have if: matrix.flavor != 'plane'
  • Plane-specific steps moved into the same job with if: matrix.flavor == 'plane'
  • Diagnostics + cleanup are flavor-aware inline (different containers/log sources)
  • publish now needs the unified e2e job (single dependency)

Quirk

GHA services: can't be conditionally defined per matrix entry — every entry must specify a service image. The plane leg sets forge_image: codeberg.org/forgejo/forgejo:15 (reusing the forgejo-15 leg's cached layer) so the service container starts, but the plane leg's bridge config points at http://forge.invalid so it's never reached. ~5s of wasted boot time per plane run; negligible relative to the ~90s Plane CE cold-cache boot.

No code change

This only touches .github/workflows/ci.yaml + a README sentence. No version bump.

🤖 Generated with Claude Code

Cosmetic: e2e-docker and e2e-real-plane were two separate jobs with
divergent naming. Merge into a single e2e job with a 3-entry matrix
named forgejo-15 / gitea-1.22 / plane-1.3, so all three legs line up
in the GitHub Actions UI under a consistent e2e-* prefix.

Mechanics: flattened matrix.forge.{name,image,flavor} to
matrix.{name,forge_image,flavor}. Forge-specific steps gain
if: matrix.flavor != 'plane'; plane-specific steps gain
if: matrix.flavor == 'plane'. Diagnostics + cleanup are flavor-aware
inline. The forge service container starts unconditionally (GHA
services: can't be conditional per matrix entry) but the plane leg's
bridge config points at http://forge.invalid so the container is never
reached.

publish now depends on `e2e` (the whole matrix) instead of separate
e2e-docker + e2e-real-plane needs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hstern hstern merged commit 0d5844b into main May 24, 2026
6 checks passed
@hstern hstern deleted the chore/e2e-matrix-rename branch May 24, 2026 10:23
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