fix(ci): close 3 chronic Gitea-Actions workflow flakes (closes #88) #92
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/gitea-ci-flakes-issue-88"
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?
Summary
Closes #88. Three workflows have been failing on every push to this Gitea repo for GitHub-shaped reasons that don't translate to act_runner. Bundled per
feedback_gitea_actions_migration_audit_pattern("bundle per-repo, not per-finding") instead of three separate PRs.What changes
1.
handlers-postgres-integration.yml—localhost→127.0.0.1lib/pq tries
localhost→::1first; the postgres service container only listens on IPv4 → ECONNREFUSED → everyTestIntegration_*fails. Pinning IPv4 makes the job deterministic. The migration step + diagnostic dump steps got the same swap so the whole workflow uses one address family.2.
pr-guards.yml— Gitea no-op + ALWAYS-RUN jobPreviously called
molecule-ai/molecule-ci/.../disable-auto-merge-on-push.yml, which usesgh pr merge --disable-auto— GitHub GraphQL only. Gitea returns HTTP 405 on/api/graphql→ step always failed. Inlined the step so it can detect Gitea (GITEA_ACTIONS=trueOR repo url undermoleculesai.app) and no-op with a notice. Auto-merge gating is moot on Gitea anyway: there's no--autoprimitive being touched.Job stays ALWAYS-RUN (no
if:on the job itself, just on the per-step actions) so branch protection's required check still lands SUCCESS — avoids the SKIPPED-in-set trap fromfeedback_branch_protection_check_name_parity.3.
tests/harness/compose.yml— cf-proxynginx.confvia dockerconfigs:act_runner runs the workflow inside a runner container; runc in the docker daemon below resolves bind-mount source paths on the OUTER host, not inside the runner. The path
/workspace/.../cf-proxy/nginx.confis invisible there → "not a directory" runc error. Switching to composeconfigs:packages the file as content rather than a host bind, sidestepping the DinD path-translation gap.Local validation
docker compose run --rm cf-proxy nginx -Treproduced theconfigs:mount end-to-end on Docker Desktop — nginx printed the full config from/etc/nginx/nginx.conf, confirming the file was delivered.docker compose -f tests/harness/compose.yml config.Real-CI validation
This branch's first CI run is the real test. Specifically watching:
Handlers Postgres Integration / Handlers Postgres Integration— should now be green (was intermittent on staging, passed on first commit of #84 then failed on second).pr-guards / disable-auto-merge-on-push— should now be green every time (was always red since the migration).Harness Replays / Harness Replays— should now be green when paths-filter runs the job (was chronic red on every workspace-server commit).Test plan after merge
Harness Replaysgreen for the first time in months.Out of scope
disable-auto-merge-on-push.ymlreusable workflow itself stays GitHub-shaped. Once another caller needs it on Gitea we'll either retire that reusable or push a Gitea-aware version upstream. For now, molecule-core's PR-guard signal is what matters.feedback_gitea_actions_migration_audit_pattern(4 surfaces × every workflow) is its own follow-up if more flakes surface.Bundled fix for 3 Gitea-Actions workflow flakes (closes #88). lib/pq localhost→IPv6 → IPv4-only postgres container is the right diagnosis (same root cause as PR #84 Postgres red). Per feedback_gitea_actions_migration_audit_pattern (bundle per-repo). 25/25 green. Ready.