55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
test:
|
|
# Why Mac?
|
|
# I can't run electron playwright on ubuntu-latest and
|
|
# Linux support for Dyad is experimental so not as important
|
|
# as Mac + Windows
|
|
runs-on: macos-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
- name: Initialize environment
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: package.json
|
|
cache: npm
|
|
cache-dependency-path: package-lock.json
|
|
- name: Install node modules
|
|
run: npm install
|
|
- name: Presubmit check (e.g. lint, format)
|
|
run: npm run presubmit
|
|
- name: Type-checking
|
|
run: npm run ts
|
|
- name: Install Chromium browser for Playwright
|
|
run: npx playwright install chromium --with-deps
|
|
- name: Build
|
|
run: npm run pre:e2e
|
|
- name: Prep test server
|
|
run: cd testing/fake-llm-server && npm install && npm run build && cd -
|
|
- name: E2E tests
|
|
# Add debug logging to make it easier to see what's failing
|
|
run: DEBUG=pw:browser npm run e2e
|
|
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
|
|
if: failure()
|
|
with:
|
|
name: playwright-report
|
|
path: playwright-report/
|
|
retention-days: 3
|