feat: Vite 8 + Rolldown #5275
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: Checks and Tests | |
| on: | |
| push: | |
| tags-ignore: | |
| - '**' | |
| paths-ignore: | |
| - '**/*.md' | |
| - '**/CHANGELOG.md' | |
| - '**/package.json' | |
| - 'bun.lock' | |
| pull_request: | |
| paths-ignore: | |
| - '**/*.md' | |
| - '**/CHANGELOG.md' | |
| - '**/package.json' | |
| - 'bun.lock' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| checks: | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' || github.event_name == 'pull_request' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/install | |
| with: | |
| install-playwright: 'false' | |
| - name: Security Audit | |
| # ignore minimatch ReDoS (GHSA-3ppc-4f35-3m26) - can't force resolve without breaking depcheck | |
| run: bun audit --audit-level high --ignore=GHSA-3ppc-4f35-3m26 | |
| - name: Check | |
| run: bun run check | |
| # workaround of node_modules/.bin/biome not being executable | |
| - run: chmod +x node_modules/@biomejs/biome/bin/biome | |
| - name: Lint | |
| run: bun run lint | |
| - name: Typecheck | |
| run: bun run typecheck | |
| tests: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| if: github.event_name == 'push' || github.event_name == 'pull_request' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install | |
| uses: ./.github/actions/install | |
| - name: Test | |
| run: | | |
| # use timeout to force-kill tests if they hang (20 min should be plenty) | |
| # capture output to check if tests passed even if timeout kills hanging cleanup | |
| timeout --signal=KILL 1200 bun run test 2>&1 | tee test-output.log || { | |
| exit_code=$? | |
| if [ $exit_code -eq 137 ]; then | |
| echo "Process killed after timeout - checking if tests passed..." | |
| # check if vitest reported success before hanging | |
| if grep -q "Test Files.*passed" test-output.log && ! grep -q "FAIL\|Error\|failed" test-output.log; then | |
| echo "Tests passed but cleanup hung - treating as success" | |
| exit 0 | |
| fi | |
| echo "Tests did not pass or had errors" | |
| exit 1 | |
| fi | |
| exit $exit_code | |
| } | |
| env: | |
| NODE_OPTIONS: --max-old-space-size=4096 |