epic: run forge tests against throwaway Forgejo and Gitea servers behind a real proxy #674

Open
opened 2026-09-29 19:28:46 +00:00 by hexajon · 0 comments
Owner

ADR 0017 says that a test of what a forge returns or accepts runs against throwaway Forgejo and Gitea servers that the test run starts, behind a real reverse proxy. The tests run the same way in the local gate and in CI, none is skipped, and no test uses a fake server or a fake forge client.

Today:

  • 230 uses of a fake HTTP server in 86 test files stand in for the forge.
  • The forgejo-smoke job in .forgejo/workflows/drift.yml starts a real Forgejo, but its admin bootstrap needs docker exec, so it runs only where RUN_FORGEJO_SMOKE is set and is skipped elsewhere. It covers Forgejo only.

Scope:

  • A harness that starts a throwaway Forgejo and a throwaway Gitea from pinned binaries with checked checksums, each behind a pinned reverse proxy with a rate limit. Each forge's own CLI creates a fresh admin and a token. No docker, and no secret.
  • Tooling bumps the version pins, never a hand edit.
  • Every forge test moves onto the harness. A fault comes from the real servers: a large fixture, a stopped forge, a renamed repo, or the proxy's rate limit.
  • The docker-exec bootstrap of forgejo-smoke goes, and its commands run on the harness against both forges.
  • The gate and CI run the same tests, and none is skipped.

Acceptance:

  • No test starts a fake HTTP server for a forge, and no test replaces the forge client with a fake.
  • The gate and CI each run the forge tests against both forges, and report no skipped forge test.

Decision record: ADR 0017.

Children

The work runs in these children, in the order it can run:

  • #677 the harness and the pin tool.
  • #678 the gate and CI run the forge tests, and the docker-exec smoke job goes. Needs #677.
  • #679 internal/gitea. Needs #677.
  • #680 internal/mcp. Needs #677.
  • #681 internal/service. Needs #677.
  • #682 every other package. Needs #677.
  • #683 the gate fails when a test fakes a forge. Needs #679, #680, #681, and #682.

Done when every child is closed.

ADR 0017 says that a test of what a forge returns or accepts runs against throwaway Forgejo and Gitea servers that the test run starts, behind a real reverse proxy. The tests run the same way in the local gate and in CI, none is skipped, and no test uses a fake server or a fake forge client. Today: - 230 uses of a fake HTTP server in 86 test files stand in for the forge. - The `forgejo-smoke` job in `.forgejo/workflows/drift.yml` starts a real Forgejo, but its admin bootstrap needs `docker exec`, so it runs only where `RUN_FORGEJO_SMOKE` is set and is skipped elsewhere. It covers Forgejo only. Scope: - A harness that starts a throwaway Forgejo and a throwaway Gitea from pinned binaries with checked checksums, each behind a pinned reverse proxy with a rate limit. Each forge's own CLI creates a fresh admin and a token. No docker, and no secret. - Tooling bumps the version pins, never a hand edit. - Every forge test moves onto the harness. A fault comes from the real servers: a large fixture, a stopped forge, a renamed repo, or the proxy's rate limit. - The docker-exec bootstrap of `forgejo-smoke` goes, and its commands run on the harness against both forges. - The gate and CI run the same tests, and none is skipped. Acceptance: - No test starts a fake HTTP server for a forge, and no test replaces the forge client with a fake. - The gate and CI each run the forge tests against both forges, and report no skipped forge test. Decision record: ADR 0017. ## Children The work runs in these children, in the order it can run: - #677 the harness and the pin tool. - #678 the gate and CI run the forge tests, and the docker-exec smoke job goes. Needs #677. - #679 `internal/gitea`. Needs #677. - #680 `internal/mcp`. Needs #677. - #681 `internal/service`. Needs #677. - #682 every other package. Needs #677. - #683 the gate fails when a test fakes a forge. Needs #679, #680, #681, and #682. Done when every child is closed.
hexajon changed title from tests: run forge tests against throwaway Forgejo and Gitea servers behind a real proxy to epic: run forge tests against throwaway Forgejo and Gitea servers behind a real proxy 2026-09-29 23:05:55 +00:00
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.

Reference
sixfold-space/madtea#674
No description provided.