mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
187 lines
3.8 KiB
YAML
187 lines
3.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
concurrency:
|
|
group: ci-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
VITEST_SEGFAULT_RETRY: 3
|
|
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/.cache/ms-playwright
|
|
CYPRESS_CACHE_FOLDER: ${{ github.workspace }}/.cache/Cypress
|
|
PUPPETEER_DOWNLOAD_PATH: ${{ github.workspace }}/.cache/Puppeteer
|
|
|
|
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
|
|
|
|
typecheck:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Typecheck
|
|
run: pnpm run typecheck
|
|
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
timeout-minutes: 30
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
node_version: [18, 20]
|
|
include:
|
|
- os: macos-latest
|
|
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 }}
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Test
|
|
run: pnpm run test:ci
|
|
|
|
- name: Test No Threads
|
|
run: pnpm run test:ci:no-threads
|
|
|
|
- name: Test Vm Threads
|
|
run: pnpm run test:ci:vm-threads
|
|
|
|
test-ui:
|
|
runs-on: ubuntu-latest
|
|
|
|
timeout-minutes: 10
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: ./.github/actions/setup-and-cache
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Test UI
|
|
run: pnpm run ui:test
|
|
|
|
test-browser:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
browser: [[chrome, chromium], [firefox, firefox], [edge, webkit]]
|
|
|
|
timeout-minutes: 30
|
|
|
|
env:
|
|
BROWSER: ${{ matrix.browser[0] }}
|
|
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
|
|
- uses: browser-actions/setup-edge@v1
|
|
id: setup-edge
|
|
with:
|
|
edge-version: stable
|
|
|
|
- name: Install
|
|
run: pnpm i
|
|
|
|
- name: Install Playwright Dependencies
|
|
run: pnpx playwright install --with-deps
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Test Browser (webdriverio)
|
|
run: pnpm run test:browser:webdriverio
|
|
env:
|
|
EDGEDRIVER_VERSION: ${{ steps.setup-edge.outputs.edge-version }}
|
|
|
|
- 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]]
|
|
|
|
timeout-minutes: 30
|
|
|
|
env:
|
|
BROWSER: ${{ matrix.browser[0] }}
|
|
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: pnpx playwright install --with-deps
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Test Browser (webdriverio)
|
|
run: pnpm run test:browser:webdriverio
|
|
|
|
- name: Test Browser (playwright)
|
|
run: pnpm run test:browser:playwright
|
|
env:
|
|
BROWSER: ${{ matrix.browser[1] }}
|