From 4c8a7a81ead1a5bd775d6fe1196585a9f92db233 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:52:16 +0300 Subject: [PATCH 01/15] Use local shell to assemble and build E2E environment --- e2e/support/github/.dockerignore | 2 ++ e2e/support/github/Dockerfile | 7 +++++-- e2e/support/github/run-e2e-docker-env.sh | 17 ++++++++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 e2e/support/github/.dockerignore diff --git a/e2e/support/github/.dockerignore b/e2e/support/github/.dockerignore new file mode 100644 index 000000000..3a80671ee --- /dev/null +++ b/e2e/support/github/.dockerignore @@ -0,0 +1,2 @@ +# .dockerignore +node_modules diff --git a/e2e/support/github/Dockerfile b/e2e/support/github/Dockerfile index 682360321..e5c37fd2c 100644 --- a/e2e/support/github/Dockerfile +++ b/e2e/support/github/Dockerfile @@ -8,9 +8,12 @@ WORKDIR /app COPY . . -RUN npm_config_legacy_peer_deps=true npm install -g openmrs@${APP_SHELL_VERSION:-next} ARG CACHE_BUST -RUN npm_config_legacy_peer_deps=true openmrs assemble --manifest --mode config --config spa-assemble-config.json --target ./spa + +RUN yarn install +RUN npm_config_legacy_peer_deps=true node packages/tooling/openmrs/dist/cli.js assemble --manifest --mode config --config spa-assemble-config.json --target ./spa +RUN npm_config_legacy_peer_deps=true node packages/tooling/openmrs/dist/cli.js build --target ./spa + FROM --platform=$BUILDPLATFORM openmrs/openmrs-reference-application-3-frontend:nightly as frontend FROM nginx:1.23-alpine diff --git a/e2e/support/github/run-e2e-docker-env.sh b/e2e/support/github/run-e2e-docker-env.sh index aea1c9f7c..90e4c9dd2 100644 --- a/e2e/support/github/run-e2e-docker-env.sh +++ b/e2e/support/github/run-e2e-docker-env.sh @@ -2,8 +2,10 @@ # get the dir containing the script script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +repository_root="$script_dir/../../../." # create a temporary working directory working_dir=$(mktemp -d "${TMPDIR:-/tmp/}openmrs-e2e-frontends.XXXXXXXXXX") +echo $working_dir # get a list of all the apps in this workspace apps=$(yarn workspaces list --json | jq -r 'if .location | test("-app$") then .name else empty end') # this array will hold all of the packed app names @@ -20,7 +22,7 @@ do # run yarn pack for our app and add it to the working directory yarn workspace "$app" pack -o "$working_dir/$app_name.tgz" >/dev/null; done; -echo "Created packed app archives" +echo "Created packed app archives" echo "Creating dynamic spa-assemble-config.json..." # dynamically assemble our list of frontend modules, prepending the @@ -38,8 +40,21 @@ jq -n \ )' | jq '{"frontendModules": .}' > "$working_dir/spa-assemble-config.json" echo "Created dynamic spa-assemble-config.json" +echo "Copying tooling, shell and framework..." +mkdir -p "$working_dir/packages" +mkdir -p "$working_dir/packages/tooling" + +cp -r "$repository_root/.yarn" "$working_dir/.yarn" +cp -r "$repository_root/.yarnrc.yml" "$working_dir/.yarnrc.yml" +cp -r "$repository_root/packages/tooling" "$working_dir/packages" +cp -r "$repository_root/packages/shell" "$working_dir/packages" +cp -r "$repository_root/packages/framework" "$working_dir/packages" +cp "$repository_root/package.json" "$working_dir/package.json" +cp "$repository_root/yarn.lock" "$working_dir/yarn.lock" + echo "Copying Docker configuration..." cp "$script_dir/Dockerfile" "$working_dir/Dockerfile" +cp "$script_dir/.dockerignore" "$working_dir/.dockerignore" cp "$script_dir/docker-compose.yml" "$working_dir/docker-compose.yml" cd $working_dir From 3f9d4bdbf8737c8e9f57c729dba503bbde98b2b0 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 16:00:52 +0300 Subject: [PATCH 02/15] Commit and export images --- .github/workflows/e2e.yml | 75 ++++++++++++++++--- .../github/commit_and_export_images.sh | 16 ++++ e2e/support/github/docker-compose.yml | 3 + 3 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 e2e/support/github/commit_and_export_images.sh diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 54e32022b..d19d88348 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -45,7 +45,7 @@ jobs: - 'example.env' - '.github/workflows/e2e.yml' - main: + build: needs: changes if: ${{ needs.changes.outputs.test-changes == 'true' }} @@ -74,9 +74,6 @@ jobs: - name: Install dependencies run: yarn install --immutable - - name: Install Playwright Browsers - run: yarn playwright install chromium --with-deps - - name: Setup local cache server for Turborepo uses: felixmosh/turborepo-gh-artifacts@v3 with: @@ -92,17 +89,73 @@ jobs: - name: Wait for OpenMRS instance to start run: while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://localhost:8080/openmrs/login.htm)" != "200" ]]; do sleep 10; done + - name: Commit and export Containers + run: bash e2e/support/github/commit_and_export_images.sh + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: e2e_release_env_images + path: e2e_release_env_images.tar.gz + retention-days: 1 + + run-patient-management-e2e-tests: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + + - name: Create Temporary Directory to Download Docker Images + id: tempdir + run: echo "tmpdir=$(mktemp -d)" >> "$GITHUB_OUTPUT" + + - name: Download Docker Images + uses: actions/download-artifact@v4 + with: + name: e2e_release_env_images + path: ${{ steps.tempdir.outputs.tmpdir }} + + - name: Load Docker Images + run: | + gzip -d ${{ steps.tempdir.outputs.tmpdir }}/e2e_release_env_images.tar.gz + docker load --input ${{ steps.tempdir.outputs.tmpdir }}/e2e_release_env_images.tar + docker image ls -a + + - name: Spin up an OpenMRS Instance + run: docker compose up -d + working-directory: e2e_test_support_files + + - name: Checkout to the repo's main branch + uses: actions/checkout@v4 + with: + repository: openmrs/openmrs-esm-patient-management + ref: main + path: e2e_repo + + - name: Copy test environment variables + run: cp example.env .env + working-directory: e2e_repo + + - name: Install dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: yarn install --immutable + working-directory: e2e_repo + + - name: Install Playwright Browsers + run: npx playwright install chromium --with-deps + working-directory: e2e_repo + + - name: Wait for the OpenMRS instance to start + run: while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://localhost:8080/openmrs/login.htm)" != "200" ]]; do sleep 10; done + - name: Run E2E tests run: yarn playwright test + working-directory: e2e_repo - - name: Stop dev server - if: '!cancelled()' - run: docker stop $(docker ps -a -q) - - - name: Upload report + - name: Upload Report uses: actions/upload-artifact@v4 if: always() with: - name: playwright-report - path: playwright-report/ + name: report-patient-management + path: e2e_repo/playwright-report/ retention-days: 30 diff --git a/e2e/support/github/commit_and_export_images.sh b/e2e/support/github/commit_and_export_images.sh new file mode 100644 index 000000000..384699d10 --- /dev/null +++ b/e2e/support/github/commit_and_export_images.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +backend_container_id=$(docker ps --filter "name=backend" --format "{{.ID}}") +db_container_id=$(docker ps --filter "name=db" --format "{{.ID}}") +frontend_container_id=$(docker ps --filter "name=frontend" --format "{{.ID}}") +gateway_container_id=$(docker ps --filter "name=gateway" --format "{{.ID}}") + +docker commit $frontend_container_id frontend +docker commit $gateway_container_id gateway +docker commit $backend_container_id backend +docker commit $db_container_id db + +docker save frontend gateway backend db > e2e_release_env_images.tar + +# compress the file (to decrease the upload file size) +gzip -c e2e_release_env_images.tar > e2e_release_env_images.tar.gz diff --git a/e2e/support/github/docker-compose.yml b/e2e/support/github/docker-compose.yml index f7fc4d70a..98175750f 100644 --- a/e2e/support/github/docker-compose.yml +++ b/e2e/support/github/docker-compose.yml @@ -4,11 +4,13 @@ version: "3.7" services: gateway: + container_name: gateway image: openmrs/openmrs-reference-application-3-gateway:${TAG:-nightly} ports: - "8080:80" frontend: + container_name: frontend build: context: . environment: @@ -16,6 +18,7 @@ services: API_URL: /openmrs backend: + container_name: backend image: openmrs/openmrs-reference-application-3-backend:nightly-with-data depends_on: - db From f9c025ec51fb8c7ef40b1ffc6612fc37764cf547 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:44:57 +0300 Subject: [PATCH 03/15] Name the db container --- e2e/support/github/commit_and_export_images.sh | 11 ++++++----- e2e/support/github/docker-compose.yml | 1 + e2e/support/github/e2e_release_env_images.tar | 0 e2e/support/github/e2e_release_env_images.tar.gz | Bin 0 -> 47 bytes 4 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 e2e/support/github/e2e_release_env_images.tar create mode 100644 e2e/support/github/e2e_release_env_images.tar.gz diff --git a/e2e/support/github/commit_and_export_images.sh b/e2e/support/github/commit_and_export_images.sh index 384699d10..acd3779e7 100644 --- a/e2e/support/github/commit_and_export_images.sh +++ b/e2e/support/github/commit_and_export_images.sh @@ -6,11 +6,12 @@ frontend_container_id=$(docker ps --filter "name=frontend" --format "{{.ID}}") gateway_container_id=$(docker ps --filter "name=gateway" --format "{{.ID}}") docker commit $frontend_container_id frontend -docker commit $gateway_container_id gateway -docker commit $backend_container_id backend -docker commit $db_container_id db +#docker commit $gateway_container_id gateway +#docker commit $backend_container_id backend +#docker commit $db_container_id db -docker save frontend gateway backend db > e2e_release_env_images.tar +docker save frontend > e2e_release_env_images.tar +#docker save frontend gateway backend db > e2e_release_env_images.tar # compress the file (to decrease the upload file size) -gzip -c e2e_release_env_images.tar > e2e_release_env_images.tar.gz +#gzip -c e2e_release_env_images.tar > e2e_release_env_images.tar.gz diff --git a/e2e/support/github/docker-compose.yml b/e2e/support/github/docker-compose.yml index 98175750f..a882b3404 100644 --- a/e2e/support/github/docker-compose.yml +++ b/e2e/support/github/docker-compose.yml @@ -24,4 +24,5 @@ services: - db db: + container_name: db image: openmrs/openmrs-reference-application-3-db:nightly-with-data diff --git a/e2e/support/github/e2e_release_env_images.tar b/e2e/support/github/e2e_release_env_images.tar new file mode 100644 index 000000000..e69de29bb diff --git a/e2e/support/github/e2e_release_env_images.tar.gz b/e2e/support/github/e2e_release_env_images.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ab63063f11545c3d40a6eaf576bed0fe5bf88f6a GIT binary patch literal 47 vcmb2|=HO`Fcr%TGIn^jNz9=;(HL*A~J~gi_J~KBlJ+)Y`B(aErnE?g>f7}gX literal 0 HcmV?d00001 From 3386c600dd242b746304d43e87aa5d9eb25ad68b Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 17:54:23 +0300 Subject: [PATCH 04/15] Uncomment the export script --- e2e/support/github/commit_and_export_images.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/e2e/support/github/commit_and_export_images.sh b/e2e/support/github/commit_and_export_images.sh index acd3779e7..1a5c826b7 100644 --- a/e2e/support/github/commit_and_export_images.sh +++ b/e2e/support/github/commit_and_export_images.sh @@ -6,12 +6,12 @@ frontend_container_id=$(docker ps --filter "name=frontend" --format "{{.ID}}") gateway_container_id=$(docker ps --filter "name=gateway" --format "{{.ID}}") docker commit $frontend_container_id frontend -#docker commit $gateway_container_id gateway -#docker commit $backend_container_id backend -#docker commit $db_container_id db +docker commit $gateway_container_id gateway +docker commit $backend_container_id backend +docker commit $db_container_id db docker save frontend > e2e_release_env_images.tar -#docker save frontend gateway backend db > e2e_release_env_images.tar +docker save frontend gateway backend db > e2e_release_env_images.tar -# compress the file (to decrease the upload file size) -#gzip -c e2e_release_env_images.tar > e2e_release_env_images.tar.gz + compress the file (to decrease the upload file size) +gzip -c e2e_release_env_images.tar > e2e_release_env_images.tar.gz From a3a0f9f2dd99aebfce202c54478d63fbebbdb7bb Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:02:51 +0300 Subject: [PATCH 05/15] Uncomment the export script --- e2e/support/github/commit_and_export_images.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/support/github/commit_and_export_images.sh b/e2e/support/github/commit_and_export_images.sh index 1a5c826b7..465459e37 100644 --- a/e2e/support/github/commit_and_export_images.sh +++ b/e2e/support/github/commit_and_export_images.sh @@ -13,5 +13,5 @@ docker commit $db_container_id db docker save frontend > e2e_release_env_images.tar docker save frontend gateway backend db > e2e_release_env_images.tar - compress the file (to decrease the upload file size) +# compress the file (to decrease the upload file size) gzip -c e2e_release_env_images.tar > e2e_release_env_images.tar.gz From 75cbd1d053bf49ab80e8cc9f8a70cb840ab30370 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:17:42 +0300 Subject: [PATCH 06/15] Update the spinup command --- .github/workflows/e2e.yml | 4 ++-- e2e/support/github/docker-compose-run.yml | 26 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 e2e/support/github/docker-compose-run.yml diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d19d88348..1969f6ef2 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -122,8 +122,8 @@ jobs: docker image ls -a - name: Spin up an OpenMRS Instance - run: docker compose up -d - working-directory: e2e_test_support_files + run: docker compose -f docker-compose-run.yml up -d + working-directory: e2e/support/github - name: Checkout to the repo's main branch uses: actions/checkout@v4 diff --git a/e2e/support/github/docker-compose-run.yml b/e2e/support/github/docker-compose-run.yml new file mode 100644 index 000000000..f36ef81dc --- /dev/null +++ b/e2e/support/github/docker-compose-run.yml @@ -0,0 +1,26 @@ +version: "3.7" + +services: + gateway: + image: gateway + restart: "unless-stopped" + depends_on: + - frontend + - backend + ports: + - "8080:80" + + frontend: + image: frontend + restart: "unless-stopped" + depends_on: + - backend + + backend: + image: backend + restart: "unless-stopped" + + db: + image: db + restart: "unless-stopped" + From 46f00f9786ec76c56f45caeaded66ac3b2ec5e66 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:39:51 +0300 Subject: [PATCH 07/15] Remove the exporting --- .github/workflows/e2e.yml | 71 +++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1969f6ef2..d32e0a99f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -86,44 +86,67 @@ jobs: - name: Run dev server run: bash e2e/support/github/run-e2e-docker-env.sh - - name: Wait for OpenMRS instance to start + - name: Copy test environment variables + run: cp example.env .env + + - name: Install Playwright Browsers + run: npx playwright install chromium --with-deps + + - name: Wait for the OpenMRS instance to start run: while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://localhost:8080/openmrs/login.htm)" != "200" ]]; do sleep 10; done - - name: Commit and export Containers - run: bash e2e/support/github/commit_and_export_images.sh + - name: Run E2E tests + run: yarn playwright test - - name: Upload artifact + - name: Upload Report uses: actions/upload-artifact@v4 + if: always() with: - name: e2e_release_env_images - path: e2e_release_env_images.tar.gz - retention-days: 1 + name: report-esm-core + path: playwright-report/ + retention-days: 30 + run-patient-management-e2e-tests: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v4 + - name: Checkout repo + uses: actions/checkout@v4 - - name: Create Temporary Directory to Download Docker Images - id: tempdir - run: echo "tmpdir=$(mktemp -d)" >> "$GITHUB_OUTPUT" + - name: Copy test environment variables + run: cp example.env .env - - name: Download Docker Images - uses: actions/download-artifact@v4 + - name: Setup node + uses: actions/setup-node@v4 with: - name: e2e_release_env_images - path: ${{ steps.tempdir.outputs.tmpdir }} + node-version: 18 - - name: Load Docker Images - run: | - gzip -d ${{ steps.tempdir.outputs.tmpdir }}/e2e_release_env_images.tar.gz - docker load --input ${{ steps.tempdir.outputs.tmpdir }}/e2e_release_env_images.tar - docker image ls -a + - name: Cache dependencies + id: cache + uses: actions/cache@v4 + with: + path: '**/node_modules' + key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install dependencies + run: yarn install --immutable - - name: Spin up an OpenMRS Instance - run: docker compose -f docker-compose-run.yml up -d - working-directory: e2e/support/github + - name: Setup local cache server for Turborepo + uses: felixmosh/turborepo-gh-artifacts@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + server-token: ${{ env.TURBO_TOKEN }} + + - name: Build apps + run: yarn turbo run build --color --concurrency=5 + + - name: Run dev server + run: bash e2e/support/github/run-e2e-docker-env.sh + + - name: Install Playwright Browsers + run: npx playwright install chromium --with-deps - name: Checkout to the repo's main branch uses: actions/checkout@v4 @@ -141,10 +164,6 @@ jobs: run: yarn install --immutable working-directory: e2e_repo - - name: Install Playwright Browsers - run: npx playwright install chromium --with-deps - working-directory: e2e_repo - - name: Wait for the OpenMRS instance to start run: while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://localhost:8080/openmrs/login.htm)" != "200" ]]; do sleep 10; done From 7e877d435e69b1661aa1f691b915a97dd92ba36c Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:41:39 +0300 Subject: [PATCH 08/15] Remove the job dependancy --- .github/workflows/e2e.yml | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d32e0a99f..3afff5f11 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -108,8 +108,9 @@ jobs: run-patient-management-e2e-tests: + needs: changes + if: ${{ needs.changes.outputs.test-changes == 'true' }} runs-on: ubuntu-latest - needs: build steps: - uses: actions/checkout@v4 - name: Checkout repo @@ -130,24 +131,12 @@ jobs: path: '**/node_modules' key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} - - name: Install dependencies - run: yarn install --immutable - - - name: Setup local cache server for Turborepo - uses: felixmosh/turborepo-gh-artifacts@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - server-token: ${{ env.TURBO_TOKEN }} - - name: Build apps run: yarn turbo run build --color --concurrency=5 - name: Run dev server run: bash e2e/support/github/run-e2e-docker-env.sh - - name: Install Playwright Browsers - run: npx playwright install chromium --with-deps - - name: Checkout to the repo's main branch uses: actions/checkout@v4 with: @@ -160,7 +149,6 @@ jobs: working-directory: e2e_repo - name: Install dependencies - if: steps.cache.outputs.cache-hit != 'true' run: yarn install --immutable working-directory: e2e_repo From 45e3f2b9c9a102c5503351fb61fe503d7c76e97a Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:52:50 +0300 Subject: [PATCH 09/15] fix the build --- .github/workflows/e2e.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3afff5f11..fb3f819ed 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -112,8 +112,7 @@ jobs: if: ${{ needs.changes.outputs.test-changes == 'true' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Checkout repo + - name: Checkout esm-core repo uses: actions/checkout@v4 - name: Copy test environment variables @@ -131,6 +130,12 @@ jobs: path: '**/node_modules' key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + - name: Setup local cache server for Turborepo + uses: felixmosh/turborepo-gh-artifacts@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + server-token: ${{ env.TURBO_TOKEN }} + - name: Build apps run: yarn turbo run build --color --concurrency=5 From ca100cf6d9b476bbde10c29166cebbbcefa276df Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:56:52 +0300 Subject: [PATCH 10/15] install dependancies --- .github/workflows/e2e.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index fb3f819ed..407844d42 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -136,6 +136,9 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} server-token: ${{ env.TURBO_TOKEN }} + - name: Install dependencies + run: yarn install --immutable + - name: Build apps run: yarn turbo run build --color --concurrency=5 From 24366718fa5621b2d08dca66faca9d6e74c97593 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:00:07 +0300 Subject: [PATCH 11/15] Install browsers --- .github/workflows/e2e.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 407844d42..a436e0a8f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -160,6 +160,10 @@ jobs: run: yarn install --immutable working-directory: e2e_repo + - name: Install Playwright Browsers + run: npx playwright install chromium --with-deps + working-directory: e2e_repo + - name: Wait for the OpenMRS instance to start run: while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://localhost:8080/openmrs/login.htm)" != "200" ]]; do sleep 10; done From b8cfe73aea96a6079a72a8518a8316f56d4fb9bf Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:17:00 +0300 Subject: [PATCH 12/15] Add matrix stratergy --- .github/workflows/e2e.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a436e0a8f..3a448aeb6 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -107,17 +107,21 @@ jobs: retention-days: 30 - run-patient-management-e2e-tests: + run-other-tests: needs: changes if: ${{ needs.changes.outputs.test-changes == 'true' }} runs-on: ubuntu-latest + strategy: + matrix: + repo: + - openmrs-esm-patient-management + - openmrs-esm-patient-chart + - openmrs-esm-form-builder + steps: - name: Checkout esm-core repo uses: actions/checkout@v4 - - name: Copy test environment variables - run: cp example.env .env - - name: Setup node uses: actions/setup-node@v4 with: @@ -145,10 +149,10 @@ jobs: - name: Run dev server run: bash e2e/support/github/run-e2e-docker-env.sh - - name: Checkout to the repo's main branch + - name: Checkout to the ${{ matrix.repo }} main branch uses: actions/checkout@v4 with: - repository: openmrs/openmrs-esm-patient-management + repository: openmrs/${{ matrix.repo }} ref: main path: e2e_repo @@ -175,6 +179,6 @@ jobs: uses: actions/upload-artifact@v4 if: always() with: - name: report-patient-management + name: report-${{ matrix.repo }} path: e2e_repo/playwright-report/ retention-days: 30 From 80f4e754968f72232dc1cd61e03e3e52cf5eb481 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:35:35 +0300 Subject: [PATCH 13/15] Add other apps --- e2e/support/github/run-e2e-docker-env.sh | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/e2e/support/github/run-e2e-docker-env.sh b/e2e/support/github/run-e2e-docker-env.sh index 90e4c9dd2..93524c93d 100644 --- a/e2e/support/github/run-e2e-docker-env.sh +++ b/e2e/support/github/run-e2e-docker-env.sh @@ -31,6 +31,40 @@ echo "Creating dynamic spa-assemble-config.json..." jq -n \ --arg apps "$apps" \ --arg app_names "$(echo ${app_names[@]})" \ + '{ + "@openmrs/esm-active-visits-app": "next", + "@openmrs/esm-appointments-app": "next", + "@openmrs/esm-cohort-builder-app": "next", + "@openmrs/esm-devtools-app": "next", + "@openmrs/esm-dispensing-app": "next", + "@openmrs/esm-fast-data-entry-app": "next", + "@openmrs/esm-form-builder-app": "next", + "@openmrs/esm-form-engine-app": "next", + "@openmrs/esm-generic-patient-widgets-app": "next", + "@openmrs/esm-home-app": "next", + "@openmrs/esm-laboratory-app": "next", + "@openmrs/esm-openconceptlab-app": "next", + "@openmrs/esm-patient-allergies-app": "next", + "@openmrs/esm-patient-attachments-app": "next", + "@openmrs/esm-patient-banner-app": "next", + "@openmrs/esm-patient-chart-app": "next", + "@openmrs/esm-patient-conditions-app": "next", + "@openmrs/esm-patient-flags-app": "next", + "@openmrs/esm-patient-forms-app": "next", + "@openmrs/esm-patient-immunizations-app": "next", + "@openmrs/esm-patient-labs-app": "next", + "@openmrs/esm-patient-list-management-app": "next", + "@openmrs/esm-patient-lists-app": "next", + "@openmrs/esm-patient-medications-app": "next", + "@openmrs/esm-patient-notes-app": "next", + "@openmrs/esm-patient-orders-app": "next", + "@openmrs/esm-patient-programs-app": "next", + "@openmrs/esm-patient-registration-app": "next", + "@openmrs/esm-patient-search-app": "next", + "@openmrs/esm-patient-vitals-app": "next", + "@openmrs/esm-service-queues-app": "next", + "@openmrs/esm-system-admin-app": "next" + } + '( ($apps | split("\n")) as $apps | ($app_names | split(" ") | map("/app/" + .)) as $app_files | [$apps, $app_files] From cd401d1c7cc2007626cb38b876c23fea78737af0 Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:39:24 +0300 Subject: [PATCH 14/15] Fix typo --- e2e/support/github/run-e2e-docker-env.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/support/github/run-e2e-docker-env.sh b/e2e/support/github/run-e2e-docker-env.sh index 93524c93d..858a3a0d4 100644 --- a/e2e/support/github/run-e2e-docker-env.sh +++ b/e2e/support/github/run-e2e-docker-env.sh @@ -64,14 +64,14 @@ jq -n \ "@openmrs/esm-patient-vitals-app": "next", "@openmrs/esm-service-queues-app": "next", "@openmrs/esm-system-admin-app": "next" - } + - '( + } + ( ($apps | split("\n")) as $apps | ($app_names | split(" ") | map("/app/" + .)) as $app_files | [$apps, $app_files] | transpose | map({"key": .[0], "value": .[1]}) | from_entries )' | jq '{"frontendModules": .}' > "$working_dir/spa-assemble-config.json" + echo "Created dynamic spa-assemble-config.json" echo "Copying tooling, shell and framework..." From a9afbeea16f069fc35e6c61cbdbf4ae3572e88fa Mon Sep 17 00:00:00 2001 From: Jayasanka Weerasinghe <33048395+jayasanka-sack@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:49:17 +0300 Subject: [PATCH 15/15] Final touches --- .github/workflows/e2e.yml | 4 +-- e2e/support/github/docker-compose-run.yml | 26 ------------------ e2e/support/github/e2e_release_env_images.tar | 0 .../github/e2e_release_env_images.tar.gz | Bin 47 -> 0 bytes 4 files changed, 2 insertions(+), 28 deletions(-) delete mode 100644 e2e/support/github/docker-compose-run.yml delete mode 100644 e2e/support/github/e2e_release_env_images.tar delete mode 100644 e2e/support/github/e2e_release_env_images.tar.gz diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3a448aeb6..3b70a03dd 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -45,7 +45,7 @@ jobs: - 'example.env' - '.github/workflows/e2e.yml' - build: + run-e2e-on-esm-core: needs: changes if: ${{ needs.changes.outputs.test-changes == 'true' }} @@ -107,7 +107,7 @@ jobs: retention-days: 30 - run-other-tests: + run-e2e-on-other-repos: needs: changes if: ${{ needs.changes.outputs.test-changes == 'true' }} runs-on: ubuntu-latest diff --git a/e2e/support/github/docker-compose-run.yml b/e2e/support/github/docker-compose-run.yml deleted file mode 100644 index f36ef81dc..000000000 --- a/e2e/support/github/docker-compose-run.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: "3.7" - -services: - gateway: - image: gateway - restart: "unless-stopped" - depends_on: - - frontend - - backend - ports: - - "8080:80" - - frontend: - image: frontend - restart: "unless-stopped" - depends_on: - - backend - - backend: - image: backend - restart: "unless-stopped" - - db: - image: db - restart: "unless-stopped" - diff --git a/e2e/support/github/e2e_release_env_images.tar b/e2e/support/github/e2e_release_env_images.tar deleted file mode 100644 index e69de29bb..000000000 diff --git a/e2e/support/github/e2e_release_env_images.tar.gz b/e2e/support/github/e2e_release_env_images.tar.gz deleted file mode 100644 index ab63063f11545c3d40a6eaf576bed0fe5bf88f6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47 vcmb2|=HO`Fcr%TGIn^jNz9=;(HL*A~J~gi_J~KBlJ+)Y`B(aErnE?g>f7}gX