Skip to content

chore(amr): bump bundled vela CLI to 0.0.16 (#4071) #251

chore(amr): bump bundled vela CLI to 0.0.16 (#4071)

chore(amr): bump bundled vela CLI to 0.0.16 (#4071) #251

name: ui-extended-main
on:
push:
branches:
- main
schedule:
# 02:00 UTC = 10:00 Asia/Shanghai
- cron: "0 2 * * *"
workflow_dispatch:
inputs:
suite:
description: "UI suite to run"
required: true
default: p0
type: choice
options:
- p0
- p0p1
- full
permissions:
contents: read
concurrency:
group: ui-extended-main-${{ github.event_name }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
ui_p0:
name: UI P0 (${{ matrix.name }})
if: ${{ github.repository == 'nexu-io/open-design' && (github.event_name == 'push' || github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && inputs.suite != 'full')) }}
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- name: entry-onboarding
smoke_command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/critical-smoke.test.ts
--grep '\[P0\]'
command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/critical-smoke.test.ts
ui/entry-chrome-flows.test.ts
ui/entry-configuration-flows.test.ts
ui/amr-onboarding.test.ts
ui/api-empty-response.test.ts
--grep '\[P0\]'
- name: project-workspace
smoke_command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/critical-smoke.test.ts
--grep '\[P0\]'
command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/app.test.ts
ui/app-restoration.test.ts
ui/app-design-files.test.ts
ui/app-manual-edit.test.ts
ui/project-management-flows.test.ts
ui/workspace-keyboard-flows.test.ts
--grep '\[P0\]'
- name: runtime-recovery
smoke_command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/critical-smoke.test.ts
--grep '\[P0\]'
command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/real-daemon-run.test.ts
ui/amr-run-failure-recovery.test.ts
ui/amr-logout-requires-relogin.test.ts
ui/settings-local-cli-codex-fallback.test.ts
--grep '\[P0\]'
- name: settings-connectors
smoke_command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/critical-smoke.test.ts
--grep '\[P0\].*settings dialog'
command: >-
pnpm -C e2e exec playwright test -c playwright.config.ts
ui/settings-api-protocol.test.ts
ui/settings-connectors-auth-happy-path.test.ts
ui/settings-connectors-auth-recovery.test.ts
--grep '\[P0\]'
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Setup workspace
uses: ./.github/actions/setup-workspace
- name: Setup Playwright
uses: ./.github/actions/setup-playwright
with:
package-json-path: e2e/package.json
install-command: pnpm -C e2e exec playwright install --with-deps chromium
- name: Prebuild workspace type declarations
run: |
pnpm --filter @open-design/daemon build
pnpm --filter @open-design/desktop build
pnpm --filter @open-design/web build:sidecar
- name: Clean Playwright state
run: pnpm -C e2e exec tsx scripts/playwright.ts clean
- name: Run UI shell smoke
run: ${{ matrix.smoke_command }}
- name: Run UI P0 domain
run: ${{ matrix.command }}
- name: Upload Playwright debug artifact
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: ui-p0-${{ github.run_id }}-${{ matrix.name }}
path: |
e2e/ui/reports/playwright-html-report
e2e/ui/reports/test-results
e2e/ui/reports/results.json
e2e/ui/test-results
if-no-files-found: ignore
retention-days: 7
ui_extended:
name: UI P1 (${{ matrix.name }})
if: ${{ github.repository == 'nexu-io/open-design' && (github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && inputs.suite == 'p0p1')) }}
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- name: P1 shard 1
part: p1
command: pnpm -C e2e exec playwright test -c playwright.config.ts ui --grep '\[P1\]' --shard=1/2
- name: P1 shard 2
part: p1
command: pnpm -C e2e exec playwright test -c playwright.config.ts ui --grep '\[P1\]' --shard=2/2
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Setup workspace
uses: ./.github/actions/setup-workspace
- name: Setup Playwright
uses: ./.github/actions/setup-playwright
with:
package-json-path: e2e/package.json
install-command: pnpm -C e2e exec playwright install --with-deps chromium
- name: Prebuild workspace type declarations
run: |
pnpm --filter @open-design/daemon build
pnpm --filter @open-design/desktop build
pnpm --filter @open-design/web build:sidecar
- name: Clean Playwright state
run: pnpm -C e2e exec tsx scripts/playwright.ts clean
- name: Run UI P1 shard
run: ${{ matrix.command }}
- name: Upload Playwright debug artifact
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: ui-extended-main-${{ github.run_id }}-${{ matrix.part }}-${{ matrix.name }}
path: |
e2e/ui/reports/playwright-html-report
e2e/ui/reports/test-results
e2e/ui/reports/results.json
e2e/ui/test-results
if-no-files-found: ignore
retention-days: 7
ui_full_manual:
name: Full UI regression
if: ${{ github.repository == 'nexu-io/open-design' && github.event_name == 'workflow_dispatch' && inputs.suite == 'full' }}
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Setup workspace
uses: ./.github/actions/setup-workspace
- name: Setup Playwright
uses: ./.github/actions/setup-playwright
with:
package-json-path: e2e/package.json
install-command: pnpm -C e2e exec playwright install --with-deps chromium
- name: Prebuild workspace type declarations
run: |
pnpm --filter @open-design/daemon build
pnpm --filter @open-design/desktop build
pnpm --filter @open-design/web build:sidecar
- name: Clean Playwright state
run: pnpm -C e2e exec tsx scripts/playwright.ts clean
- name: Run full UI
run: pnpm -C e2e test:ui
- name: Upload Playwright debug artifact
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: ui-full-manual-${{ github.run_id }}
path: |
e2e/ui/reports/playwright-html-report
e2e/ui/reports/test-results
e2e/ui/reports/results.json
e2e/ui/test-results
if-no-files-found: ignore
retention-days: 7