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