mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
This PR updates vitest to v2. The changes are mostly around using fork instead of threads for how tests are run which should fix one of the issues we've found. Ever since adding the unit tests on Windows, we started seeing occacional flags of vitest crashing with the following error: ``` ELIFECYCLE Command failed with exit code 3221225477. Error: Process completed with exit code 1. ``` When reading the [v2 changelog](https://github.com/vitest-dev/vitest/releases/tag/v2.0.0) we saw many bug fixes related to segfaulting so we believe this was the issue. When upgrading `vitest` alone, we got a bunch of dependency mismatches though (specifically, vite was installed two times with different peer dependencies for `@types/node` which causes our vite plugin's `Plugin` type to be different from the one in the vite playground. Yikes. These were eventually fixed by having pnpm create a new lockfile for us. So, unfortunatly this PR also bumps a bunch of patch versions for some transitive dependencies. Tests seem fine, though 🤞 This PR also removes the `bench` script from CI. It doesn't give us value in its current state (since it's not reporting when performance regresses) but added a few seconds of unnecessary overhead to each test run.
83 lines
1.9 KiB
YAML
83 lines
1.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [master, next]
|
|
pull_request:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [20]
|
|
runner: [ubuntu-latest, windows-latest]
|
|
|
|
runs-on: ${{ matrix.runner }}
|
|
timeout-minutes: 15
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: pnpm/action-setup@v3
|
|
with:
|
|
version: ^9.5.0
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: 'pnpm'
|
|
|
|
# Cargo already skips downloading dependencies if they already exist
|
|
- name: Cache cargo
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
# Cache the `oxide` Rust build
|
|
- name: Cache oxide build
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
./target/
|
|
./crates/node/*.node
|
|
./crates/node/index.js
|
|
./crates/node/index.d.ts
|
|
key: ${{ runner.os }}-oxide-${{ hashFiles('./crates/**/*') }}
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Lint
|
|
run: pnpm run lint
|
|
# Only lint on linux to avoind \r\n line ending errors
|
|
if: matrix.runner == 'ubuntu-latest'
|
|
|
|
- name: Test
|
|
run: pnpm run test
|
|
|
|
- name: Install Playwright Browsers
|
|
run: npx playwright install --with-deps
|
|
|
|
- name: Run Playwright tests
|
|
run: npm run test:ui
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: always()
|
|
with:
|
|
name: playwright-report
|
|
path: packages/tailwindcss/playwright-report/
|
|
retention-days: 30
|