From feb872d05c91d56bc40f4ff2189e7d10e482656c Mon Sep 17 00:00:00 2001 From: Nawaz Dhandala Date: Thu, 9 Oct 2025 11:39:30 +0100 Subject: [PATCH] feat: add E2E testing support with docker-compose configuration --- .github/workflows/release.yml | 24 ++++++++++++++++++------ docker-compose.e2e.yml | 10 ++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 docker-compose.e2e.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 968c37ee98..091d4021ec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2182,14 +2182,20 @@ jobs: npm run status-check - name: Wait for server to start run: bash ./Tests/Scripts/status-check.sh http://localhost + - name: Pull E2E test image + run: | + set -euo pipefail + export $(grep -v '^#' config.env | xargs) + export APP_TAG=${{needs.read-version.outputs.major_minor}}.${{needs.generate-build-number.outputs.build_number}} + docker compose -f docker-compose.e2e.yml pull e2e - name: Run E2E Tests. Run docker container e2e in docker compose file run: | set -euo pipefail export $(grep -v '^#' config.env | xargs) export APP_TAG=${{needs.read-version.outputs.major_minor}}.${{needs.generate-build-number.outputs.build_number}} - trap 'docker compose -f docker-compose.dev.yml down -v || true' EXIT - if ! docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e; then - docker compose -f docker-compose.dev.yml logs e2e + trap 'docker compose -f docker-compose.e2e.yml down -v || true' EXIT + if ! docker compose -f docker-compose.e2e.yml up --exit-code-from e2e --abort-on-container-exit e2e; then + docker compose -f docker-compose.e2e.yml logs e2e exit 1 fi - name: Upload test results @@ -2262,14 +2268,20 @@ jobs: npm run status-check - name: Wait for server to start run: bash ./Tests/Scripts/status-check.sh http://localhost + - name: Pull E2E test image + run: | + set -euo pipefail + export $(grep -v '^#' config.env | xargs) + export APP_TAG=${{needs.read-version.outputs.major_minor}}.${{needs.generate-build-number.outputs.build_number}} + docker compose -f docker-compose.e2e.yml pull e2e - name: Run E2E Tests. Run docker container e2e in docker compose file run: | set -euo pipefail export $(grep -v '^#' config.env | xargs) export APP_TAG=${{needs.read-version.outputs.major_minor}}.${{needs.generate-build-number.outputs.build_number}} - trap 'docker compose -f docker-compose.dev.yml down -v || true' EXIT - if ! docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e; then - docker compose -f docker-compose.dev.yml logs e2e + trap 'docker compose -f docker-compose.e2e.yml down -v || true' EXIT + if ! docker compose -f docker-compose.e2e.yml up --exit-code-from e2e --abort-on-container-exit e2e; then + docker compose -f docker-compose.e2e.yml logs e2e exit 1 fi - name: Upload test results diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml new file mode 100644 index 0000000000..5ef9503802 --- /dev/null +++ b/docker-compose.e2e.yml @@ -0,0 +1,10 @@ +services: + e2e: + extends: + file: ./docker-compose.base.yml + service: e2e + image: ghcr.io/oneuptime/e2e:${APP_TAG} + pull_policy: always + volumes: + - ./E2E/playwright-report:/usr/src/app/playwright-report + - ./E2E/test-results:/usr/src/app/test-results