name: E2E CI on: push: branches: - 'main' pull_request: concurrency: group: '${{ github.workflow }}-${{ github.head_ref || github.ref }}' cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: e2e: name: E2E Test (${{ matrix.os }}) strategy: fail-fast: true matrix: os: - 'ubuntu-latest' - 'macos-latest' - 'windows-latest' runs-on: ${{ matrix.os }} timeout-minutes: 15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install NodeJS Dependencies uses: ./.github/actions/install-node-dependencies - name: Setup rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install Playwright Browsers run: pnpm exec playwright install - name: Run Playwright E2E tests run: pnpm test:e2e ci_ok: name: E2E CI OK runs-on: ubuntu-latest timeout-minutes: 1 if: always() needs: - e2e steps: - name: Exit with error if some jobs are not successful run: exit 1 if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled')) }}