Skip to content

wip

wip #628

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: [16, 18]
include:
- os: macos-latest
node_version: 18
- os: windows-latest
node_version: 18
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: 16.16
- 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: 18
- uses: browser-actions/setup-chrome@v1
- uses: browser-actions/setup-firefox@v1
- uses: browser-actions/setup-edge@v1
with:
edge-version: beta
- name: Install
run: pnpm i
- name: Install Playwright Dependencies
run: pnpx playwright install-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] }}
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: 18
- 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-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] }}
test-browser-safari:
runs-on: macos-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-and-cache
with:
node-version: 18
- name: Install
run: sudo pnpm i --frozen-lockfile
- name: Build
run: sudo pnpm run build
- name: Enable
run: sudo safaridriver --enable
- name: Test Browser (webdriverio)
run: sudo BROWSER=safari pnpm run test:browser:webdriverio
- name: Test Browser (playwright)
run: sudo BROWSER=webkit pnpm run test:browser:playwright