Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167name: CI
# Remove default permissions of GITHUB_TOKEN for security# https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobspermissions: {}
on: push: branches: - main
pull_request:
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: timeout-minutes: 10 runs-on: ubuntu-latest name: 'Lint: node-latest, 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: Lint run: pnpm run lint
- name: Typecheck run: pnpm run typecheck
# From https://github.com/rhysd/actionlint/blob/main/docs/usage.md#use-actionlint-on-github-actions - name: Check workflow files run: | bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) ./actionlint -color -shellcheck=""
changed: runs-on: ubuntu-latest name: 'Diff: node-latest, ubuntu-latest' outputs: should_skip: ${{ steps.changed-files.outputs.only_changed == 'true' }}
steps: - uses: actions/checkout@v4
- name: Get changed files id: changed-files uses: tj-actions/changed-files@4edd678ac3f81e2dc578756871e4d00c19191daf # v45.0.4 with: files: | docs/** .github/** !.github/workflows/ci.yml **.md
test: needs: changed name: 'Build&Test: node-${{ matrix.node_version }}, ${{ matrix.os }}' if: needs.changed.outputs.should_skip != 'true' runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy: matrix: os: [ubuntu-latest] node_version: [18, 20, 22] 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 }}
- uses: browser-actions/setup-chrome@v1
- name: Install run: pnpm i
- name: Install Playwright Dependencies run: pnpm exec playwright install chromium --with-deps
- name: Build run: pnpm run build
- name: Test run: pnpm run test:ci
- name: Test Examples run: pnpm run test:examples
- name: Unit Test UI run: pnpm run -C packages/ui test:ui
test-browser: needs: changed name: 'Browser: ${{ matrix.browser[0] }}, ${{ matrix.os }}' if: needs.changed.outputs.should_skip != 'true'
runs-on: ${{ matrix.os }} strategy: matrix: os: - macos-latest - windows-latest browser: - [chromium, chrome] - [firefox, firefox] - [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 if: ${{ matrix.browser[0] == 'chromium' }} - uses: browser-actions/setup-firefox@v1 if: ${{ matrix.browser[0] == 'firefox' }}
- name: Install run: pnpm i
- name: Install Playwright Dependencies if: needs.changed.outputs.should_skip != 'true' run: pnpm exec playwright install ${{ matrix.browser[0] }} --with-deps
- name: Build run: pnpm run build
- name: Test Browser (playwright) run: pnpm run test:browser:playwright env: BROWSER: ${{ matrix.browser[0] }}
- name: Test Browser (webdriverio) run: pnpm run test:browser:webdriverio if: ${{ matrix.browser[1] }} env: BROWSER: ${{ matrix.browser[1] }}