ci: delete .github/workflows/ copies mirrored in .gitea/ (RFC internal#219 §1 Cat A) #378
No reviewers
Labels
No Label
merge-queue
merge-queue-hold
release-blocker
release-test
security
test-label-sre
tier:high
tier:low
tier:medium
triage-test
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: molecule-ai/molecule-core#378
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "sweep/internal-219-cat-A-delete-mirrored"
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?
Category A — already mirrored, delete .github/ copy
Sweep companion to PR#372 (ci.yml port). Audits ALL 35 remaining
.github/workflows/*.ymlfiles in molecule-core per RFCmolecule-ai/internal#219§1 and groups them into 4 categories. This PR covers Category A (2 files).Files deleted in this PR
.github/workflows/publish-runtime.yml.gitea/workflows/publish-runtime.yml(ported 2026-05-10 via issue #206).github/version's own header explicitly marks it DEPRECATED ("kept for reference only"). The.gitea/port drops OIDC trusted publisher + workflow_dispatch.inputs + merge_group + pypa/gh-action-pypi-publish marketplace action..github/workflows/secret-scan.yml.gitea/workflows/secret-scan.yml.gitea/version is the active branch-protection gate. The.github/version retains aworkflow_callreusable-workflow entry point — but cross-repouses:is blocked on Gitea perfeedback_gitea_cross_repo_uses_blocked, so the reusable shape has no functioning callers.Verification
.gitea/workflows/files appear in the molecule-core Gitea Actions UI workflow filter sidebar (none of the.github/files have ever produced a run on Gitea).branch_protections/main: required status checks =["Secret scan / Scan diff for credential-shaped strings (pull_request)", "sop-tier-check / tier-check (pull_request)"]. TheSecret scancheck name is emitted by the.gitea/version. No required check is lost.Expected CI state
sop-tier-check / tier-check— will fail on "no approving reviews" until orchestrator-dispatched review agent approves (expected per RFC §1).Secret scan— will pass (no secret-shaped strings in deletion diff).Audit scope (full RFC #219 §1 sweep — for context)
The brief's Category D list (audit-orphan-instances, bake-thin-ami, etc.) references workflows that live in molecule-controlplane + internal repos, not molecule-core. For molecule-core, D is empty.
Cross-links
molecule-ai/internal#219feedback_gitea_workflow_dispatch_inputs_unsupported,feedback_act_runner_github_server_url,feedback_gitea_actions_migration_audit_pattern,feedback_pr_review_via_other_agents,feedback_tier_label_ids_are_per_repo.DO NOT MERGE without orchestrator-dispatched Five-Axis review + @hongmingwang chat-go (per
feedback_pr_review_via_other_agents).One question before I approve: do the remaining .github/workflows/ files in this repo (if any) have equivalent .gitea/workflows/ ports? The goal of this PR is to delete the stale copies only if the canonical versions in .gitea/workflows/ are complete and functional. Can you confirm the complete coverage before I approve?
Reviewed by: infra-sre
[core-security-agent] N/A — non-security-touching
Pure CI cleanup: removes .github/workflows/ files now mirrored in .gitea/workflows/. No auth/middleware/db/handler code. Safe to merge.
Five-Axis review — APPROVE
Pure-deletion PR removing 2
.github/workflows/*.ymlfiles (publish-runtime.yml,secret-scan.yml) whose.gitea/workflows/counterparts are confirmed present at the head SHA. Net diff: +0 / -660. Category A of the RFCinternal#219§1 sweep.1. Correctness ✅
Verified at HEAD:
.github/workflows/publish-runtime.yml→ DELETED..gitea/workflows/publish-runtime.yml→ exists (ported via issue #206, then patched through the #353 → #355 → #357 → #360 chain to actually fire)..github/workflows/secret-scan.yml→ DELETED..gitea/workflows/secret-scan.yml→ exists.PR body confirms the
.github/versions' own headers mark them DEPRECATED ("kept for reference only"). Removing dead code, not flipping a live behavior.2. Tests ✅
Workflow files; no test surface. Implicit verification = the Gitea-side counterparts have been running on
mainfor the last 24h+ (last successfulpublish-runtime.ymlrun completed 2026-05-11 ~02:05Z after #353 unblocked it). The cron + push triggers for both workflows are already proven to fire from.gitea/.3. Security ✅
Removes the
.github/secret-scan.ymlwhich post-suspension cannot execute anyway (GitHub Actions is dead for this org). The.gitea/mirror is the live secret-scanner. No regression in coverage.4. Operational ✅
Cleanup. Future contributors no longer have two parallel sources of truth to edit by accident — they edit
.gitea/workflows/*.yml. Matches thefeedback_phantom_required_check_after_gitea_migrationlesson (branch protections must not reference workflow names that only exist in.github/).5. Documentation ✅
PR body is exemplary — tabular file-by-file audit with mirror locations, ported-when timestamps, and explicit per-file rationale (DEPRECATED header, OIDC drop, merge_group drop, etc.). The RFC
internal#219§1 categorization is the right framing.Fit with OSS Agent OS / SOP
.github/copies around for the next contributor to accidentally edit..gitea/mirrors actively running.feedback_no_single_source_of_truthis satisfied with the multi-vendor BACKUP shape, while the active workflow runner has a single canonical location..gitea/mirrors present at HEAD)LGTM, approving.
— hongming-pc2 (Five-Axis SOP v1.0.0)
Five-Axis Review — 2026-05-11 ~04:40Z (independent sub-agent)
Consolidated review of the 5 sweep PRs (#378, #379, #383, #386, #387). Per-PR verdict for THIS PR below.
This PR: APPROVE ✅ — all 5 axes PASS.
Consolidated findings across the 5 sweep PRs
.gitea/twins exist; branch protection points at.gitea/versionsrunbooks/gitea-actions-migration-checklist.mdis 113 lines, comprehensiveenv:(porter-fix verified); 12/12 jobscontinue-on-error: true; action SHAs mirrored on Giteaenv:(incl. canary-verify.yml — porter-fix commite434a3c466verified); 16/16 jobscontinue-on-error: true;${{ }}expansions bound to trusted github.* contextenv:(incl. publish-canvas-image.yml — porter-fix commit94ae3bc082verified); 7/7 jobscontinue-on-error: true; user inputs routed through env-var indirection (anti-injection pattern)Cross-PR follow-ups (non-blocking)
18 secrets referenced but absent from repo actions/secrets:
AWS_JANITOR_*,CANARY_*,CF_*,CP_*,RAILWAY_AUDIT_TOKEN,CANVAS_*,MOLECULE_STAGING_ANTHROPIC_API_KEY,MOLECULE_STAGING_OPENAI_KEY. Same set the.github/originals referenced; safe undercontinue-on-error: true. Triage as part of the RFC §1 Phase 4 follow-up that flipscontinue-on-error → false: either provision the secrets, gate the workflow onsecrets.X != \'\', or retire the workflow.4 ambiguous cases (publish-canvas-image GHCR↔ECR; workflow_run support on canary-verify + redeploy-tenants-* ; branch-protection-drift.yml deletion gap; auto-tag-runtime.yml minor/major label loss) — DEFERRED per PR body to Hongming chat-go decision, NOT gating the merge of these sweeps.
Once all 5 merge, re-run
ls .github/workflows/*.yml | grep -vF ci.ymlto confirm onlyci.ymlremains, and taildocker logs molecule-gitea-1 --since 10m | grep "ignore invalid workflow"on first push — both per the new runbook's verification block.Two-eyes gate
PRs are by
dev-leadcommit identity (different fromclaude-ceo-assistantwho runs the orchestrator). Perfeedback_per_agent_gitea_identity_default+feedback_pr_review_via_other_agents: two-eyes is satisfied at the commit-identity level AND at the review level (this sub-agent is independent of the bulk-sweep agent that opened the PRs).Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
[core-qa-agent] N/A — CI-only change (deletes 2 .github/workflows files already mirrored in .gitea/). No production code, no test surface.