name: WebComponent E2E Tests on: push: pull_request: workflow_dispatch: jobs: e2e-test-core: name: E2E Tests Core runs-on: ov-actions-runner steps: - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Setup OpenVidu Local Deployment uses: OpenVidu/actions/start-openvidu-local-deployment@main - name: Setup OpenVidu Meet uses: OpenVidu/actions/start-openvidu-meet@main env: MEET_WEBHOOK_ENABLED: true - name: Start testapp shell: bash run: | cd testapp npm run start > ../testapp.log 2>&1 & - name: Wait for testapp to Start shell: bash run: | echo "Waiting for testapp to start on http://localhost:5080..." for i in {1..30}; do if curl -s http://localhost:5080 >/dev/null 2>&1; then echo "Testapp is ready!" exit 0 fi echo "Attempt $i/30: Testapp not ready yet, waiting 1 second..." sleep 1 done echo "Timeout: Testapp failed to start within 30 seconds" exit 1 - name: Run tests run: | cd frontend/webcomponent # Install Playwright browsers mkdir -p /tmp/ms-playwright PLAYWRIGHT_BROWSERS_PATH=/tmp/ms-playwright npx playwright install --with-deps chromium npm run test:e2e-core env: RUN_MODE: CI PLAYWRIGHT_BROWSERS_PATH: /tmp/ms-playwright - name: Upload failed test videos if: always() uses: actions/upload-artifact@v4 with: name: test-videos path: | frontend/webcomponent/test-results/*/*.webm retention-days: 2 - name: Clean up if: always() uses: OpenVidu/actions/cleanup@main webcomponent-e2e-test: name: WebComponent E2E Tests runs-on: ov-actions-runner steps: - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Setup OpenVidu Local Deployment uses: OpenVidu/actions/start-openvidu-local-deployment@main - name: Setup OpenVidu Meet uses: OpenVidu/actions/start-openvidu-meet@main env: MEET_WEBHOOK_ENABLED: true - name: Start testapp shell: bash run: | cd testapp npm run start > ../testapp.log 2>&1 & - name: Wait for testapp to Start shell: bash run: | echo "Waiting for testapp to start on http://localhost:5080..." for i in {1..30}; do if curl -s http://localhost:5080 >/dev/null 2>&1; then echo "Testapp is ready!" exit 0 fi echo "Attempt $i/30: Testapp not ready yet, waiting 1 second..." sleep 1 done echo "Timeout: Testapp failed to start within 30 seconds" exit 1 - name: Run tests run: | docker ps -a cd frontend/webcomponent # Install Playwright browsers mkdir -p /tmp/ms-playwright PLAYWRIGHT_BROWSERS_PATH=/tmp/ms-playwright npx playwright install --with-deps chromium npm run test:e2e env: RUN_MODE: CI PLAYWRIGHT_BROWSERS_PATH: /tmp/ms-playwright - name: Upload OpenVidu Testapp logs if: always() uses: actions/upload-artifact@v4 with: name: meet-logs path: testapp.log retention-days: 2 - name: Upload failed test videos if: always() uses: actions/upload-artifact@v4 with: name: test-videos path: | frontend/webcomponent/test-results/*/*.webm retention-days: 2 - name: Dump OpenVidu Local Deployment logs if: always() shell: bash run: | docker logs openvidu &> openvidu-server.logs docker logs egress &> egress.logs - name: Upload OpenVidu Local Deployment logs if: always() uses: actions/upload-artifact@v4 with: name: openvidu-local-deployment-logs path: | openvidu-server.logs egress.logs retention-days: 2 - name: Clean up if: always() uses: OpenVidu/actions/cleanup@main