feat(e2e): cluster-free local E2E harness (legacy app, Tier B) #8
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: E2E Cluster-free Harness | |
| # Runs the cluster-free local E2E harness (RHIDP-13501 / RHIDP-15075): boots the | |
| # backend and the legacy app dev server in-process and drives Playwright against | |
| # them, with dynamic plugins installed from the public OCI registry (ghcr) via | |
| # the install-dynamic-plugins CLI (skopeo). No OpenShift/Kubernetes cluster or | |
| # image. See docs/e2e-tests/local-e2e-harness.md. | |
| on: | |
| pull_request: | |
| paths: | |
| - "e2e-tests/**" | |
| - "app-config*.yaml" | |
| - ".github/workflows/e2e-cluster-free.yaml" | |
| push: | |
| branches: | |
| - "main" | |
| - "release-*" | |
| paths: | |
| - "e2e-tests/**" | |
| - "app-config*.yaml" | |
| - ".github/workflows/e2e-cluster-free.yaml" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| legacy-local: | |
| name: Cluster-free E2E (legacy app) | |
| runs-on: ubuntu-latest | |
| # Playwright image: browsers + OS deps preinstalled, so no browser-install step | |
| # (which hung on plain ubuntu runners). Keep the tag in sync with the | |
| # @playwright/test version in e2e-tests/package.json (currently 1.61.1) — a | |
| # mismatch fails with "Executable doesn't exist at /ms-playwright/...". | |
| container: | |
| image: mcr.microsoft.com/playwright:v1.61.1-noble | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version-file: ".nvmrc" | |
| - name: Enable Corepack (vendored yarn 4) | |
| run: corepack enable | |
| - name: Cache yarn global cache | |
| uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0 | |
| with: | |
| path: ~/.yarn/berry/cache | |
| key: yarn-${{ hashFiles('yarn.lock', 'e2e-tests/yarn.lock') }} | |
| restore-keys: | | |
| yarn- | |
| - name: Install skopeo | |
| run: | | |
| apt-get update | |
| apt-get install -y --no-install-recommends skopeo | |
| - name: Install dependencies (root) | |
| run: yarn install | |
| - name: Install dependencies (e2e-tests) | |
| working-directory: ./e2e-tests | |
| run: yarn install --mode=skip-build | |
| - name: Populate dynamic-plugins-root (OCI, no source build) | |
| # install-dynamic-plugins pulls the harness plugin set from the public OCI | |
| # registry (ghcr) via skopeo — the core plugins in the catalog index's | |
| # default.yaml reference local ./dynamic-plugins/dist paths that only exist | |
| # after a source build, so we install the OCI-published builds instead. | |
| run: ./e2e-tests/local-harness/populate.sh | |
| - name: Run cluster-free E2E (legacy app) | |
| working-directory: ./e2e-tests | |
| run: yarn e2e:legacy-local | |
| - name: Upload Playwright report | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
| with: | |
| name: playwright-report-legacy-local | |
| path: e2e-tests/playwright-report-legacy-local | |
| retention-days: 7 |