feat(e2e): cluster-free local E2E harness (legacy app, Tier B) #1
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 pulled from the public catalog index 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 | |
| env: | |
| # Public index; release branches can override to the matching :1.y tag. | |
| CATALOG_INDEX_IMAGE: quay.io/rhdh/plugin-catalog-index:latest | |
| jobs: | |
| legacy-local: | |
| name: Cluster-free E2E (legacy app) | |
| runs-on: ubuntu-latest | |
| 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: Install skopeo | |
| run: | | |
| sudo apt-get update | |
| sudo 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: Install Playwright browser | |
| working-directory: ./e2e-tests | |
| run: yarn playwright install --with-deps chromium | |
| - name: Populate dynamic-plugins-root from the catalog index | |
| # Mirrors the install-dynamic-plugins flow used by the nightly sanity check: | |
| # an empty plugin list + CATALOG_INDEX_IMAGE pulls the default plugin set | |
| # (incl. the dynamic home-page plugin) from the public index via skopeo. | |
| run: | | |
| mkdir -p dynamic-plugins-root | |
| printf 'plugins: []\n' > dynamic-plugins.yaml | |
| cp dynamic-plugins.yaml dynamic-plugins-root/dynamic-plugins.yaml | |
| npx -y @red-hat-developer-hub/cli-module-install-dynamic-plugins@0.2.0 install dynamic-plugins-root | |
| - 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 |