-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
Description
Linear ticket: https://linear.app/getsentry/issue/JS-1879
Depends on: #19677 (build output caching)
Parent: #19671
Goal
Extract unit test jobs from build.yml into an independent ci-unit-tests.yml workflow. This includes:
job_browser_unit_testsjob_node_unit_tests(×4 Node versions)job_bun_unit_testsjob_deno_unit_tests
This is the last extraction since unit tests are the least flaky and fastest to complete, so re-run wait times are least painful.
New workflow: ci-unit-tests.yml
name: 'CI: Unit Tests'
on:
push:
branches: [develop, master, v9, v8, release/**]
pull_request:
merge_group:
types: [checks_requested]
workflow_dispatch:Jobs
restore_build— uses.github/actions/restore-build(from CI: Build output caching + cross-workflow restore-cache action #19677)browser_unit_tests— Vitest browser testsnode_unit_tests— matrix: Node 18/20/22/24bun_unit_tests— conditional on@sentry/bunchangesdeno_unit_tests— conditional on@sentry/denochangesunit_tests_gate— gate job namedUnit Tests Passed
Conditional execution
Bun and Deno tests use changed_bun and changed_deno flags. This workflow needs the same detection.
Transition steps
- Create
ci-unit-tests.yml. Unit tests run in bothbuild.ymlandci-unit-tests.yml(dual-running). - Verify stability over several days/PRs.
- Ruleset change (requires admin): Add
Unit Tests Passedas required status check to all 4 rulesets. - Remove unit test jobs from
build.ymland fromjob_required_jobs_passedneeds list. - At this point
build.ymlonly contains build, lint, and check jobs. Rename workflow toCI: Build & Lintand gate job toBuild & Lint Passed. Update rulesets accordingly.
Concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: trueReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Fields
Give feedbackNo fields configured for issues without a type.