mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
This PR changes it so that only the Ubuntu runner starts when doing a pull request. On a successfull `next` merge, all runners shoould start. Furthermore this increases the retry count for integration test to 3. This is mainly so that rare Windows flakes we still see won't become noise when we enabled the Discord notification.
97 lines
2.5 KiB
YAML
97 lines
2.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [next]
|
|
pull_request:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [20]
|
|
runner: [ubuntu-latest, windows-latest, macos-14]
|
|
# Exclude windows and macos from being built on feature branches
|
|
on-next-branch:
|
|
- ${{ github.ref == 'refs/heads/next' }}
|
|
exclude:
|
|
- on-next-branch: false
|
|
runner: windows-latest
|
|
- on-next-branch: false
|
|
runner: macos-14
|
|
|
|
runs-on: ${{ matrix.runner }}
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: pnpm/action-setup@v4
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: 'pnpm'
|
|
|
|
# Cargo already skips downloading dependencies if they already exist
|
|
- name: Cache cargo
|
|
uses: actions/cache@v4
|
|
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@v4
|
|
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
|
|
env:
|
|
CARGO_PROFILE_RELEASE_LTO: 'off'
|
|
CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER: 'lld-link'
|
|
|
|
- name: Lint
|
|
run: pnpm run lint
|
|
# Only lint on linux to avoid \r\n line ending errors
|
|
if: matrix.runner == 'ubuntu-latest'
|
|
|
|
- name: Test
|
|
run: pnpm run test
|
|
|
|
- name: Integration Tests
|
|
run: pnpm run test:integrations
|
|
env:
|
|
GITHUB_WORKSPACE: ${{ github.workspace }}
|
|
|
|
- name: Install Playwright Browsers
|
|
run: npx playwright install --with-deps
|
|
|
|
- name: Run Playwright tests
|
|
run: npm run test:ui
|
|
|
|
- name: Notify Discord
|
|
if: failure() && github.ref == 'refs/heads/next'
|
|
uses: discord-actions/message@v2
|
|
with:
|
|
webhookUrl: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
|
message: 'Oh noes! A build on `next` failed!'
|