Skip to content

Render lab result HTML as is if it does not conform to the expected format #1748

Render lab result HTML as is if it does not conform to the expected format

Render lab result HTML as is if it does not conform to the expected format #1748

name: Test ecr-viewer Container
on:
pull_request:
branches:
- "**"
paths:
- containers/ecr-viewer/**
- containers/fhir-converter/**
merge_group:
types:
- checks_requested
push:
branches:
- main
paths-ignore:
- pyproject.toml
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CONTAINER: ecr-viewer
NODE_VERSION: 18 # Adjust the Node.js version as needed
jobs:
javascript-linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lint javascript for ${{env.CONTAINER}}
working-directory: ./containers/${{env.CONTAINER}}
run: |
npm ci
npm run lint
test-node-containers:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install dependencies
working-directory: ./containers/${{env.CONTAINER}} # Navigate to your Node.js app directory
run: npm install
- name: Run tests
working-directory: ./containers/${{env.CONTAINER}} # Navigate to your Node.js app directory
run: npm test
cypress-e2e-tests:
if: false
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install dependencies
working-directory: ./containers/${{env.CONTAINER}} # Navigate to your Node.js app directory
run: npm install
- name: Start ${{env.CONTAINER}}
working-directory: ./containers/${{env.CONTAINER}}/cypress
run: docker compose --env-file ../.env.test up -d
- name: Run cypress tests
working-directory: ./containers/${{env.CONTAINER}}
run: npm run cypress:run
- name: Archive cypress failures
if: always()
uses: actions/upload-artifact@v4
with:
name: cypress-results
path: |
containers/ecr-viewer/cypress/screenshots/*
containers/ecr-viewer/cypress/videos/*
- name: Get docker logs
if: always()
working-directory: ./containers/${{env.CONTAINER}}/cypress
shell: bash
run: |
echo "Saving $container logs"
docker compose logs --timestamps >& cypress-run.log
- name: Archive docker logs
if: always()
uses: actions/upload-artifact@v4
with:
name: logs
path: ./containers/${{env.CONTAINER}}/cypress/cypress-run.log
lighthouse:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Start app
run: docker compose --env-file .env.test --profile postgres --profile ecr-viewer up -d
working-directory: ./containers/${{env.CONTAINER}}
- name: Wait for Application to be ready
run: |
until curl --output /dev/null --silent --head --fail http://localhost:3000/ecr-viewer; do
printf '.'
sleep 5
done
# - name: Run Lighthouse
# uses: treosh/lighthouse-ci-action@v12
# with:
# configPath: "./lighthouserc.yaml"
# uploadArtifacts: true
build-container:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build ${{ env.CONTAINER }} Container
uses: docker/build-push-action@v3
with:
context: ./containers/${{ env.CONTAINER }}
file: ./containers/${{ env.CONTAINER }}/Dockerfile
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
convert-data:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Set up env vars
run: npm run setup-local-env
working-directory: ./containers/${{env.CONTAINER}}
- name: Run seed data conversion
run: npm run convert-seed-data:build
working-directory: ./containers/${{env.CONTAINER}}