Skip to content

Commit

Permalink
Commit and export images
Browse files Browse the repository at this point in the history
  • Loading branch information
jayasanka-sack committed Sep 5, 2024
1 parent 4c8a7a8 commit dfe2109
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 7 deletions.
70 changes: 63 additions & 7 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,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
16 changes: 16 additions & 0 deletions e2e/support/github/commit_and_export_images.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit dfe2109

Please sign in to comment.