fix: end a restored reaction context at the end of its synchronous segment #25068
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | ||
| on: | ||
| push: | ||
| branches: [main] | ||
| pull_request: | ||
| permissions: | ||
| contents: read # to fetch code (actions/checkout) | ||
| env: | ||
| # We only install Chromium manually | ||
| PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1' | ||
| jobs: | ||
| Tests: | ||
| permissions: {} | ||
| runs-on: ${{ matrix.os }} | ||
| timeout-minutes: 15 | ||
| strategy: | ||
| matrix: | ||
| include: | ||
| # Vitest 4 requires Node 20+, so tests run on 20/22/24. The published | ||
| # Svelte package still supports Node >=18 (see packages/svelte/package.json). | ||
| - node-version: 20 | ||
| os: windows-latest | ||
| - node-version: 20 | ||
| os: macOS-latest | ||
| - node-version: 20 | ||
| os: ubuntu-latest | ||
| - node-version: 22 | ||
| os: ubuntu-latest | ||
| - node-version: 24 | ||
| os: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | ||
| with: | ||
| node-version: ${{ matrix.node-version }} | ||
| cache: pnpm | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm playwright install chromium | ||
| - run: pnpm test | ||
| env: | ||
| CI: true | ||
| TestNoAsync: | ||
| permissions: {} | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | ||
| with: | ||
| node-version: 22 | ||
| cache: pnpm | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm playwright install chromium | ||
| - run: pnpm test runtime-runes | ||
| env: | ||
| CI: true | ||
| SVELTE_NO_ASYNC: true | ||
| TSGo: | ||
| permissions: {} | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 5 | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | ||
| with: | ||
| node-version: 24 | ||
| cache: pnpm | ||
| - name: install | ||
| run: pnpm install --frozen-lockfile | ||
| - name: install tsgo | ||
| run: cd packages/svelte && pnpm i -D @typescript/native-preview | ||
| - name: type check | ||
| run: cd packages/svelte && pnpm check:tsgo | ||
| Lint: | ||
| permissions: {} | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | ||
| with: | ||
| node-version: 24 | ||
| cache: pnpm | ||
| - name: install | ||
| run: pnpm install --frozen-lockfile | ||
| - name: type check | ||
| run: pnpm check | ||
| - name: lint | ||
| if: (${{ success() }} || ${{ failure() }}) # ensures this step runs even if previous steps fail (avoids multiple runs uncovering different issues at different steps) | ||
|
Check warning on line 96 in .github/workflows/ci.yml
|
||
| run: pnpm lint | ||
| - name: build and check generated types | ||
| if: (${{ success() }} || ${{ failure() }}) # ensures this step runs even if previous steps fail | ||
|
Check warning on line 99 in .github/workflows/ci.yml
|
||
| run: pnpm build && { [ "`git status --porcelain=v1`" == "" ] || (echo "Generated types have changed — please regenerate types locally with `cd packages/svelte && pnpm generate:types` and commit the changes after you have reviewed them"; git diff; exit 1); } | ||
| - name: check browser-support docs page is up to date | ||
| run: '{ [ "`git status --porcelain=v1 documentation/docs/07-misc/.generated/`" == "" ] || (echo "The browser-support docs page is out of date — please regenerate it locally with \`cd packages/svelte && pnpm generate:browser-support\` and commit the changes"; git diff documentation/docs/07-misc/.generated/; exit 1); }' | ||
| Benchmarks: | ||
| permissions: {} | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 15 | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 | ||
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | ||
| with: | ||
| node-version: 24 | ||
| cache: pnpm | ||
| - run: pnpm install --frozen-lockfile | ||
| - run: pnpm bench | ||
| env: | ||
| CI: true | ||