Skip to content

VED-942 Modify the update endpoint documentation #1888

VED-942 Modify the update endpoint documentation

VED-942 Modify the update endpoint documentation #1888

Workflow file for this run

name: Quality Checks
on:
push:
branches:
- master
pull_request:
types: [labeled, opened, synchronize, reopened, unlabeled]
env:
SHARED_PATH: ${{ github.workspace }}/lambdas/shared
LAMBDA_PATH: ${{ github.workspace }}/lambdas
jobs:
lint-specification:
name: Lint specification
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
with:
node-version: "23.11.0"
cache: "npm"
- name: Install linting dependencies
run: make install
- name: Lint
run: make lint
- name: Check formatting
run: make format-check
lint-python:
name: Lint Python projects
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- name: Install poetry
run: pip install poetry==2.1.4
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548
with:
python-version: 3.11
cache: "poetry"
- name: Install linting dependencies
run: poetry install --no-root
working-directory: quality_checks
- name: Lint
run: poetry run make lint
working-directory: quality_checks
- name: Check formatting
run: poetry run make format-check
working-directory: quality_checks
lint-terraform:
name: Lint Terraform projects
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd
with:
terraform_version: "1.12.2"
- name: Check formatting
run: terraform fmt -check -recursive
testcoverage_and_sonarcloud:
name: Test Coverage and SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
- name: Install poetry
run: pip install poetry==2.1.4
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548
with:
python-version: 3.11
cache: "poetry"
- name: Set up AWS credentials
env:
AWS_ACCESS_KEY_ID: "FOOBARKEY"
AWS_SECRET_ACCESS_KEY: "FOOBARSECRET"
run: |
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
- name: Run unittest with coverage-fhir-api
working-directory: lambdas/backend
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/backend/src:${{ env.LAMBDA_PATH }}/backend/tests:${{ env.SHARED_PATH }}/src:${{ env.SHARED_PATH }}/tests
id: fhirapi
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "fhir-api tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../backend-coverage.xml
- name: Run unittest with coverage-ack-lambda
working-directory: lambdas/ack_backend
id: acklambda
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/ack_backend/src:${{ env.LAMBDA_PATH }}/ack_backend/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "ack-lambda tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../ack-lambda-coverage.xml
- name: Run unittest with batchprocessorfilter-coverage
working-directory: lambdas/batch_processor_filter
id: batchprocessorfilter
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/batch_processor_filter/src:${{ env.LAMBDA_PATH }}/batch_processor_filter/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "batchprocessorfilter tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../batchprocessorfilter-coverage.xml
- name: Run unittest with coverage-delta
working-directory: lambdas/delta_backend
id: delta
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/delta_backend/src:${{ env.LAMBDA_PATH }}/delta_backend/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "delta tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../delta-coverage.xml
- name: Run unittest with filenameprocessor-coverage
working-directory: lambdas/filenameprocessor
id: filenameprocessor
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/filenameprocessor/src:${{ env.LAMBDA_PATH }}/filenameprocessor/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "filenameprocessor tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../filenameprocessor-coverage.xml
- name: Run unittest with id_sync
working-directory: lambdas/id_sync
id: id_sync
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/id_sync/src:${{ env.LAMBDA_PATH }}/id_sync/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --rcfile=.coveragerc --source=src -m unittest discover || echo "id_sync tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../id_sync-coverage.xml
- name: Run unittest with coverage-mesh-processor
working-directory: lambdas/mesh_processor
id: meshprocessor
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/mesh_processor/src:${{ env.LAMBDA_PATH }}/mesh_processor/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "mesh_processor tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../mesh_processor-coverage.xml
- name: Run unittest with coverage-mns-subscription
working-directory: lambdas/mns_subscription
id: mns_subscription
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/mns_subscription/src:${{ env.LAMBDA_PATH }}/mns_subscription/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "mns_subscription tests failed" >> ../../failed_tests.txt
poetry run coverage report -m
poetry run coverage xml -o ../../mns_subscription-coverage.xml
- name: Run unittest with recordforwarder-coverage
working-directory: lambdas/recordforwarder
id: recordforwarder
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/recordforwarder/src:${{ env.LAMBDA_PATH }}/recordforwarder/tests:${{ env.SHARED_PATH }}/src:${{ env.SHARED_PATH }}/tests
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "recordforwarder tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../recordforwarder-coverage.xml
- name: Run unittest with recordprocessor-coverage
working-directory: lambdas/recordprocessor
id: recordprocessor
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/recordprocessor/src:${{ env.LAMBDA_PATH }}/recordprocessor/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "recordprocessor tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../recordprocessor-coverage.xml
- name: Run unittest with redis_sync
working-directory: lambdas/redis_sync
id: redis_sync
env:
PYTHONPATH: ${{ env.LAMBDA_PATH }}/redis_sync/src:${{ env.LAMBDA_PATH }}/redis_sync/tests:${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --source=src -m unittest discover || echo "redis_sync tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../redis_sync-coverage.xml
- name: Run unittest with shared
working-directory: lambdas/shared
id: shared
env:
PYTHONPATH: ${{ env.SHARED_PATH }}/src
continue-on-error: true
run: |
poetry install
poetry run coverage run --rcfile=.coveragerc --source=src -m unittest discover -s tests -p "test_*.py" -v || echo "shared tests failed" >> ../../failed_tests.txt
poetry run coverage xml -o ../../shared-coverage.xml
- name: Run Test Failure Summary
id: check_failure
run: |
if [ -s failed_tests.txt ]; then
echo "The following tests failed:"
cat failed_tests.txt
while IFS= read -r line; do
echo "##[error]Test Failures: $line"
done < failed_tests.txt
exit 1
else
echo "All tests passed."
fi
- name: SonarCloud Scan
uses: SonarSource/sonarqube-scan-action@a31c9398be7ace6bbfaf30c0bd5d415f843d45e9
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}