VED-972: Slack Alerts for Id and redis Sync #1878
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |