AvanzaCast/.github/workflows/validate-studio-flow.yml
Cesar Mendivil 8b458a3ddf feat: add initial LiveKit Meet integration with utility scripts, configs, and core components
- 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
2025-11-20 12:50:38 -07:00

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 '------------------------------'