Skip to content

ci: set workspace-concurrency #644

ci: set workspace-concurrency

ci: set workspace-concurrency #644

Workflow file for this run

name: CI
on:
# TODO
push:
# branches:
# - main
workflow_dispatch:
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] }}