name: CI on: push: branches: [master, next] pull_request: branches: [master, next] permissions: contents: read jobs: build: runs-on: ubuntu-latest timeout-minutes: 15 strategy: matrix: node-version: [20] steps: - uses: actions/checkout@v3 - uses: pnpm/action-setup@v3 with: version: ^8.15.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: | ./oxide/target/ ./oxide/crates/node/*.node ./oxide/crates/node/index.js ./oxide/crates/node/index.d.ts key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - name: Install dependencies run: pnpm install - name: Build run: pnpm run build - name: Lint run: pnpm run lint - 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 - name: Bench run: pnpm run bench