CI: stand up Gitea Actions (TST-03) + fix the defects it caught #123
Reference in New Issue
Block a user
Delete Branch "fix/ci-selfhosted-tooling"
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?
Stand up working Gitea Actions CI (TST-03) + fix the defects it caught
The CI pipeline was authored under TST-03 (P1) but had never executed on a runner. This branch makes it run and go green (
portable+javajobs), and fixes five real latent defects the first real run surfaced.Why it never ran
The co-located
gitea-runneron the docker host spawned job containers on an isolated network (container.network: ""), soactions/checkoutcouldn't resolve Gitea's internal clone URLhttp://gitea:3000. Fixed on the host (container.network: "traefik"), not in this branch.Workflow portability (the self-hosted
catthehackeract image lacks GitHub-hosted tooling)check-codegen.ps1'sshell: pwsh).gradle/actionsmonorepo action; repo has no gradle wrapper).Real defects the run caught and this branch fixes
check-codegen.ps1called.Trim()on$nullwhen the tree is clean — Check 2 could never report success. →| Out-String.clients/rust/protos/mxaccess_worker.protowas stale (missing canonicalmax_frame_bytes). → refreshed.OrphanWorkerTerminatorTestshard-coded aC:\path that LinuxPath.GetFullPathwon't root, so the matcher found nothing (Expected 2/1 kills, Actual 0). → OS-neutral normalized path (5/5 pass).clients/javageneratedMxaccessWorker.javawas stale (missingmax_frame_bytes). →gradle generateProto(protobuf 4.33.1, no version churn); ci.yml churn-revert broadened to both aggregates.grpc.aio.Channelwith no current event loop on py3.12 (pytest-asyncio 1.x). → autouse conftest fixture ensuring a loop.Result
portable✅ (NonWindows build + codegen freshness + 808/808 gateway tests + .NET/Go/Rust/Python) ·java✅.windows+live-mxaccessremain queued pending a self-hosted windev runner (separate follow-up). Tracker: TST-03 → Done.https://claude.ai/code/session_01DMXXvNuPekkkrTEyPNxEkW