You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extract E2E test jobs (job_e2e_prepare, job_e2e_tests, job_optional_e2e_tests) from build.yml into an independent ci-e2e.yml workflow. This is the first extraction because E2E tests are the most flaky and have the longest running time, making re-run wait times most painful.
Linear ticket: https://linear.app/getsentry/issue/JS-1876
Depends on: #19677 (build output caching)
Parent: #19671
Goal
Extract E2E test jobs (
job_e2e_prepare,job_e2e_tests,job_optional_e2e_tests) frombuild.ymlinto an independentci-e2e.ymlworkflow. This is the first extraction because E2E tests are the most flaky and have the longest running time, making re-run wait times most painful.New workflow:
ci-e2e.ymlJobs
restore_build— uses.github/actions/restore-build(from CI: Build output caching + cross-workflow restore-cache action #19677) to get build output viaactions/cache/restorewith Nx-cached fallbacke2e_prepare— builds tarballs, generates test matrix (same as currentjob_e2e_prepare)e2e_tests— runs framework test apps against Verdaccio (same as currentjob_e2e_tests)optional_e2e_tests— canary/optional tests requiring secrets (same as currentjob_optional_e2e_tests)e2e_gate— gate job namedE2E Tests Passed, checks all above jobsNeeds from metadata
The E2E jobs need
is_base_branch,changed_any_code, andforce_skip_cachefrom metadata. Either:reusable-metadata.ymlviaworkflow_call(from Extract reusable metadata workflow #19672)Transition steps
ci-e2e.ymlwith all jobs above. E2E tests now run in bothbuild.ymlandci-e2e.yml(dual-running).ci-e2e.ymlis stable over several days/PRs.E2E Tests Passedas required status check to all 4 rulesets (develop, master, v[89], v7).job_e2e_prepare,job_e2e_tests,job_optional_e2e_testsfrombuild.yml. Remove them fromjob_required_jobs_passedneeds list.Concurrency
Needs its own concurrency group to avoid cancelling other workflows: