diff --git a/.github/workflows/ci-testing-deploy.yml b/.github/workflows/ci-testing-deploy.yml index 57ae88665f22..d4c842518330 100644 --- a/.github/workflows/ci-testing-deploy.yml +++ b/.github/workflows/ci-testing-deploy.yml @@ -2133,6 +2133,76 @@ jobs: if: always() run: ./ci/github/system-testing/e2e.bash clean_up + system-test-e2e-playwright: + needs: [changes, build-test-images] + if: ${{ needs.changes.outputs.anything == 'true' || github.event_name == 'push' }} + timeout-minutes: 30 # if this timeout gets too small, then split the tests + name: "[sys] e2e-playwright" + runs-on: ${{ matrix.os }} + container: + image: mcr.microsoft.com/playwright/python:v1.39.0-jammy + strategy: + matrix: + python: ["3.10"] + os: [ubuntu-22.04] + docker_buildx: [v0.10.4] + fail-fast: false + steps: + - uses: actions/checkout@v4 + - name: setup docker buildx + id: buildx + uses: docker/setup-buildx-action@v3 + with: + version: ${{ matrix.docker_buildx }} + driver: docker-container + - name: setup python environment + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + cache: "pip" + cache-dependency-path: "tests/e2e-playwright/requirements/dev.txt" + - name: expose github runtime for buildx + uses: crazy-max/ghaction-github-runtime@v3 + - name: download docker images + uses: actions/download-artifact@v3 + with: + name: docker-buildx-images-${{ runner.os }}-${{ github.sha }} + path: /${{ runner.temp }}/build + - name: load docker images + run: make load-images local-src=/${{ runner.temp }}/build + - name: prepare devenv + run: make devenv + - name: show system version + run: ./ci/helpers/show_system_versions.bash + - name: setup + run: | + ./ci/github/system-testing/e2e.bash install + source .venv/bin/activate + pushd tests/e2e-playwright + make install-dev + - name: test + run: | + source .venv/bin/activate + pushd tests/e2e-playwright + make test-sleepers + - name: dump docker logs + id: docker_logs_dump + if: failure() + run: ./ci/github/system-testing/e2e.bash dump_docker_logs + - name: upload docker logs + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ${{ github.job }}_docker_logs + path: ./tests/e2e/test_failures + - name: upload tracing if failed + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ${{ github.job }}_tracing + path: tests/e2e-playwright/test-results + + system-test-environment-setup: timeout-minutes: 30 # if this timeout gets too small, then split the tests name: "[sys] environment setup" @@ -2173,6 +2243,7 @@ jobs: needs: [ system-test-e2e, + system-test-e2e-playwright, system-test-environment-setup, system-test-public-api, system-test-swarm-deploy, diff --git a/tests/e2e-playwright/Makefile b/tests/e2e-playwright/Makefile index fa480d62da54..3bce5ba22491 100644 --- a/tests/e2e-playwright/Makefile +++ b/tests/e2e-playwright/Makefile @@ -39,6 +39,7 @@ test-sleepers: _check_venv_active ## runs sleepers test on local deploy --product-url=http://$(get_my_ip):9081 \ --product-billable=false \ --autoregister \ + --tracing=retain-on-failure \ $(CURDIR)/tests/sleepers.py