Skip to content

CI: Extract server integration tests into independent workflow #19675

@chargome

Description

@chargome

Linear ticket: https://linear.app/getsentry/issue/JS-1878

Depends on: #19677 (build output caching)
Parent: #19671

Goal

Extract server-side integration test jobs from build.yml into an independent ci-integration-tests.yml workflow. This includes:

  • job_node_integration_tests (×4 Node versions + optional TS 3.8)
  • job_node_core_integration_tests (×4 Node versions + optional TS 3.8)
  • job_cloudflare_integration_tests
  • job_remix_integration_tests (×4 Node versions)

New workflow: ci-integration-tests.yml

name: 'CI: Integration Tests'
on:
  push:
    branches: [develop, master, v9, v8, release/**]
  pull_request:
  merge_group:
    types: [checks_requested]
  workflow_dispatch:

Jobs

  1. restore_build — uses .github/actions/restore-build (from CI: Build output caching + cross-workflow restore-cache action #19677)
  2. node_integration_tests — matrix: Node 18/20/22/24, optional TS 3.8 on Node 24
  3. node_core_integration_tests — matrix: Node 18/20/22/24, optional TS 3.8 on Node 24
  4. cloudflare_integration_tests — single job
  5. remix_integration_tests — matrix: Node 18/20/22/24 with Playwright
  6. integration_tests_gate — gate job named Integration Tests Passed

Conditional execution

Current jobs use changed_node_integration, changed_node_core_integration, changed_remix flags. This workflow needs the same detection — either inline or call reusable-metadata.yml.

Transition steps

  1. Create ci-integration-tests.yml. Integration tests run in both build.yml and ci-integration-tests.yml (dual-running).
  2. Verify stability over several days/PRs.
  3. Ruleset change (requires admin): Add Integration Tests Passed as required status check to all 4 rulesets.
  4. Remove integration test jobs from build.yml and from job_required_jobs_passed needs list.

Concurrency

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions