ci: remove gitea-merge-queue schedule: (queue absorbed into operator conductor)
#31
Reference in New Issue
Block a user
Delete Branch "ci/absorb-queue-schedule-into-conductor"
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?
Remove the
schedule:trigger from gitea-merge-queue.yml (execution absorbed into the operator conductor)Measurement (Gitea DB
action_run_job, 7d, posted on operator-config#157): the scheduledqueuejob is the top remaining CI meta-job after event-driven dispatch (operator-config#157/#159): 312 jobs/hr around the clock across 26 repos (288/day in this repo alone) = ~52.4k container jobs/week, ~58–65 in-job hours/week plus a full container lifecycle per tick — and ~99% of ticks are no-ops ("merge queue empty" / fail-closed holds; verified in this fleet's action logs).What replaced it: since operator-config#194 (merged + autoheal-applied), the operator conductor tick (
molecule-core-cron-bot.sh conductor, every 5 min — same cadence as this schedule) runs this repo's merge-queue in-process, with this repo's own workflow env and this repo's own script version (parsed/fetched per tick, sha256-pinned before execution). Live parity was proven before this PR was opened: the conductor pass reproduces this repo's scheduled-run behavior exactly.This PR changes no policy: the queue contract, merge bar, labels, and
workflow_dispatch(manual run) are untouched. Only theschedule:block is removed so the 5-min container polling stops.Kill-switch / rollback:
touch /etc/molecule-bootstrap/molecule-ci-conductor-fleet.disabled(operator host) — disables the in-process pass.schedule: - cron: "*/5 * * * *");workflow_dispatchworks at any time.Projected saving for this repo: ~2,016 scheduler jobs/week.
🤖 Generated with Claude Code
SOP checklist
workflow_dispatchretained, validated programmatically for all 26 repos before opening; (b) the replacement (conductor fleet pass, operator-config#194) proven live: dry + real runs reproduce this repo's scheduled-job behavior byte-for-byte (same script version, same env, same fail-closed outcomes), full installed-path conductor tick green (status-reaper rc=0, merge-queue rc=0, merge-queue-fleet rc=0, journal 2026-06-10T10:12:58Z).schedule:only stops the redundant container polling.schedule:block is deleted (not commented-as-fallback);workflow_dispatchis retained as the designed manual vehicle, not a shim.qa APPROVE (5-axis, MQ-3 gate-integrity verified). Change touches ONLY the
on:trigger block of gitea-merge-queue.yml — removes theschedule: */5cron, documents that the operator conductor (operator-config#194) now invokes the queue in-process every 5 min (the cron burned ~288 container-jobs/day/repo, ~52k/week fleet-wide, ~99% no-ops). GATE-INTEGRITY (the key axis): this does NOT weaken merge-queue enforcement — the required-check verification + 2-distinct-genuine gating lives in the job SCRIPT/STEPS, which are UNCHANGED; the trigger only controls invocation CADENCE, not what the gating does when it runs. No bypass introduced —workflow_dispatchis an invocation vehicle, the gating still runs regardless of invocation source. Correctness/robustness: sound; the only trade-off is liveness now depends on the operator conductor — which is fail-SAFE (queue STALLS rather than bad-merges) and has a documented kill-switch + manual workflow_dispatch fallback + rollback. Security: no token/permission delta (permissions block unchanged). Content-security: only an internal operator host PATH in a comment (no creds) — clean. CI green, mergeable. NON-BLOCKING sequencing note: this assumes the operator conductor (operator-config#194) is LIVE and ticking before the cron is removed — if it's not yet deployed, the queue would go dark until it is; worth confirming conductor-live as these merge. Approving.Security 5-axis — APPROVE (head
a05c067879). ci: remove gitea-merge-queueschedule:cron — the operator conductor now runs the queue in-process every 5 min (operator-config#194). 2nd distinct lane (CR-B holds 1st).on:trigger (dropschedule: */5, keepworkflow_dispatch). The merge-queue JOB/script (the gitea-merge-queue.py gate-check + merge logic) is UNCHANGED — same required-approval/required-context enforcement, just invoked by the conductor instead of cron ("THIS repo's env + script version preserved"). No merge-gate bypass, no weakening of approval/context checks. ✓permissions:change (block unchanged). The documented kill-switch path + rollback are operator-host ops-records in an internal CI comment (appropriate ops disclosure, not a tenant-reachable attack surface). ✓Non-blocking (operational sequencing): this presumes the operator conductor is LIVE and invoking this queue per-repo; if it is not yet wired, queued PRs would stall — mitigated by the retained workflow_dispatch manual fallback + the documented rollback. Recommend confirming conductor-live before/with the merge.
Gate GREEN (all 4 CI contexts ✓ incl Workflow-YAML-lint (validates the edited workflow), Secrets-scan). Author devops-engineer ≠ me. Clean trigger-cleanup — APPROVE.