- Add Next.js app structure with base configs, linting, and formatting - Implement LiveKit Meet page, types, and utility functions - Add Docker, Compose, and deployment scripts for backend and token server - Provide E2E and smoke test scaffolding with Puppeteer and Playwright helpers - Include CSS modules and global styles for UI - Add postMessage and studio integration utilities - Update package.json with dependencies and scripts for development and testing
81 lines
2.8 KiB
YAML
81 lines
2.8 KiB
YAML
name: Validate Studio Flow (E2E)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
token:
|
|
description: 'E2E token (ex: e2e098...)'
|
|
required: true
|
|
default: ''
|
|
vite_broadcast_url:
|
|
description: 'VITE_BROADCASTPANEL_URL'
|
|
required: true
|
|
default: 'https://avanzacast-broadcastpanel.bfzqqk.easypanel.host'
|
|
vite_studio_url:
|
|
description: 'VITE_STUDIO_URL (optional)'
|
|
required: false
|
|
default: 'https://avanzacast-studio.bfzqqk.easypanel.host'
|
|
vite_livekit_ws:
|
|
description: 'VITE_LIVEKIT_WS_URL (optional)'
|
|
required: false
|
|
default: 'wss://livekit-server.bfzqqk.easypanel.host'
|
|
vite_token_server:
|
|
description: 'VITE_TOKEN_SERVER_URL (optional)'
|
|
required: false
|
|
default: 'https://avanzacast-servertokens.bfzqqk.easypanel.host'
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '18'
|
|
|
|
- name: Install system deps for Puppeteer
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y ca-certificates fonts-liberation libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libdbus-1-3 libgdk-pixbuf2.0-0 libnspr4 libnss3 libx11-6 libx11-xcb1 libxcomposite1 libxdamage1 libxrandr2 libxss1 libasound2 libgbm1 libgtk-3-0 libpangocairo-1.0-0
|
|
|
|
- name: Install node dependencies
|
|
run: |
|
|
npm ci || npm install --no-audit --no-fund
|
|
|
|
- name: Install puppeteer (if missing) and build
|
|
run: |
|
|
if [ ! -d node_modules/puppeteer ]; then npm install --no-audit --no-fund puppeteer@19.11.1; fi
|
|
|
|
- name: Run studio flow validation
|
|
env:
|
|
TOKEN: ${{ github.event.inputs.token }}
|
|
VITE_BROADCASTPANEL_URL: ${{ github.event.inputs.vite_broadcast_url }}
|
|
VITE_STUDIO_URL: ${{ github.event.inputs.vite_studio_url }}
|
|
VITE_LIVEKIT_WS_URL: ${{ github.event.inputs.vite_livekit_ws }}
|
|
VITE_TOKEN_SERVER_URL: ${{ github.event.inputs.vite_token_server }}
|
|
# Run headless in CI
|
|
HEADLESS: '1'
|
|
run: |
|
|
echo "Running E2E validate script with TOKEN=${TOKEN}"
|
|
node e2e/validate-flow-domains-local.js
|
|
|
|
- name: Upload results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: studio-flow-results
|
|
path: |
|
|
e2e/studio-flow-domains-result.json
|
|
e2e/studio_flow_result.png
|
|
|
|
- name: Show small summary (result file)
|
|
if: always()
|
|
run: |
|
|
echo '---- results (if present) ----'
|
|
if [ -f e2e/studio-flow-domains-result.json ]; then cat e2e/studio-flow-domains-result.json; else echo 'No JSON result found'; fi
|
|
echo '------------------------------'
|
|
|