mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
183 lines
3.8 KiB
YAML
183 lines
3.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ci-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/.cache/ms-playwright
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Lint
|
|
run: pnpm run lint
|
|
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
timeout-minutes: 30
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
node_version: [18, 20]
|
|
# node_version: [18, 20, 22] 22 when LTS is close enough
|
|
include:
|
|
- os: macos-14
|
|
node_version: 20
|
|
- os: windows-latest
|
|
node_version: 20
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
with:
|
|
node-version: ${{ matrix.node_version }}
|
|
|
|
- uses: browser-actions/setup-chrome@v1
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Install Playwright Dependencies
|
|
run: pnpm exec playwright install --with-deps
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Test
|
|
run: pnpm run test:ci
|
|
|
|
- name: Test Examples
|
|
run: pnpm run test:examples
|
|
|
|
test-ui:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-14, windows-latest]
|
|
fail-fast: false
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Install Playwright Dependencies
|
|
run: pnpm exec playwright install chromium
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Unit Test UI
|
|
run: pnpm run -C packages/ui test:ui
|
|
|
|
- name: E2E Test UI
|
|
run: pnpm -C test/ui test-e2e
|
|
|
|
test-browser:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
browser: [[chrome, chromium], [firefox, firefox], [edge, webkit]]
|
|
fail-fast: false
|
|
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
with:
|
|
node-version: 20
|
|
|
|
- uses: browser-actions/setup-chrome@v1
|
|
- uses: browser-actions/setup-firefox@v1
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Install Playwright Dependencies
|
|
run: pnpm exec playwright install --with-deps
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Test Browser (webdriverio)
|
|
run: pnpm run test:browser:webdriverio
|
|
env:
|
|
BROWSER: ${{ matrix.browser[0] }}
|
|
|
|
- name: Test Browser (playwright)
|
|
run: pnpm run test:browser:playwright
|
|
env:
|
|
BROWSER: ${{ matrix.browser[1] }}
|
|
|
|
test-browser-windows:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
matrix:
|
|
browser: [[chrome, chromium], [edge, webkit]]
|
|
fail-fast: false
|
|
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
with:
|
|
node-version: 20
|
|
|
|
- uses: browser-actions/setup-chrome@v1
|
|
- uses: browser-actions/setup-edge@v1
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Install Playwright Dependencies
|
|
run: pnpm exec playwright install --with-deps
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Test Browser (webdriverio)
|
|
run: pnpm run test:browser:webdriverio
|
|
env:
|
|
BROWSER: ${{ matrix.browser[0] }}
|
|
|
|
- name: Test Browser (playwright)
|
|
run: pnpm run test:browser:playwright
|
|
env:
|
|
BROWSER: ${{ matrix.browser[1] }}
|