chore(ci): make pretest optional for release-production#2174
Conversation
Adds a `skip_e2e` workflow_dispatch input mirroring release-staging.yml, gating the pretest-tests and pretest-e2e jobs so an operator can bypass them when the pretest signal is already known (e.g. promoting a staging tag whose pretests already ran green). - create-release accepts pretest success OR (skip_e2e && skipped) - build-desktop receives skip_pretests for run-policy logging
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds a ChangesSkip E2E Tests in Production Release
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
Comment |
Summary
skip_e2eworkflow_dispatchinput torelease-production.ymlmirroring the existing input onrelease-staging.yml.pretest-testsandpretest-e2ejobs on!inputs.skip_e2e.create-releasejob guard to accept pretestsuccessOR (skip_e2e&&skipped).skip_preteststo the reusablebuild-desktop.ymlso the bypass is logged in the build run.Problem
release-production.ymlalways runs the full pretest matrix (unit/rust + E2E across all three OSes) beforecreate-release. When promoting a staging tag whose pretests already ran green, this re-runs an expensive matrix unnecessarily, and there is no escape hatch to unblock a production cut when the signal is already known.release-staging.ymlalready supports this via askip_e2einput — production should match.Solution
Mirror staging's
skip_e2edesign verbatim:skip_e2eworkflow_dispatchinput (boolean, defaultfalse).pretest-tests/pretest-e2eon!inputs.skip_e2e.create-release.ifto allow either pretestsuccessor (skip_e2e&&skipped).skip_pretests: ${{ inputs.skip_e2e }}tobuild-desktopso the bypass is metadata-logged in the build run.The
cleanup-failed-releasecondition is intentionally untouched — skipped pretests are neitherfailurenorcancelled, so the failure-cleanup branch naturally won't fire on the skip path.Submission Checklist
Impact
Release Productionworkflow dispatch UI. Default behaviour (run pretests) is unchanged.skip_e2e=true, the production cut proceeds without the pretest gate — operators must already have a green pretest signal (e.g. av*-stagingtag).Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
Validation Run
Validation Blocked
Behavior Changes
release-production.ymlvia a newskip_e2eworkflow_dispatch input.falsepreserves current behaviour.Parity Contract
skip_e2e=falsekeeps the existing pretest gate active and thecreate-releasepredicate strictly equivalent.create-releasenow accepts pretestsuccessOR (skip_e2e&&skipped); mirrorsrelease-staging.ymlexactly.Duplicate / Superseded PR Handling