Build #7726
This file contains 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: Build | |
on: | |
schedule: | |
- cron: '0 10 * * *' # every day at 10am | |
push: | |
tags: | |
- 'v*.*.*' | |
pull_request: | |
branches: | |
- main | |
merge_group: | |
permissions: read-all | |
jobs: | |
fmt: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cljfmt: 0.13.0 | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Check Formatting | |
run: make fmt | |
lint: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
clj-kondo: '2024.09.27' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Lint | |
run: make lint | |
job-ig: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Node | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 | |
with: | |
node-version: 21 | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Build | |
working-directory: job-ig | |
run: make build | |
- name: Validate | |
working-directory: job-ig | |
run: make validate | |
- name: Upload Profiles | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources/*.json | |
test: | |
strategy: | |
matrix: | |
module: | |
- admin-api | |
- anomaly | |
- async | |
- byte-buffer | |
- byte-string | |
- cache-collector | |
- cassandra | |
- coll | |
- cql | |
- db | |
- db-resource-store | |
- db-resource-store-cassandra | |
- db-tx-log | |
- db-tx-log-kafka | |
- executor | |
- extern-terminology-service | |
- fhir-client | |
- fhir-path | |
- fhir-structure | |
- http-client | |
- interaction | |
- jepsen | |
- job-async-interaction | |
- job-compact | |
- job-re-index | |
- job-scheduler | |
- job-util | |
- kv | |
- luid | |
- metrics | |
- module-base | |
- openid-auth | |
- operation-compact | |
- operation-graphql | |
- operation-measure-evaluate-measure | |
- operation-patient-everything | |
- operation-patient-purge | |
- operation-totals | |
- operation-value-set-expand | |
- page-id-cipher | |
- page-store | |
- page-store-cassandra | |
- rest-api | |
- rest-util | |
- rocksdb | |
- scheduler | |
- server | |
- terminology-service | |
- thread-pool-executor-collector | |
java-version: | |
- '17' | |
- '21' | |
exclude: | |
- module: jepsen | |
java-version: '17' | |
needs: job-ig | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cli: '1.12.0.1479' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-${{ matrix.java-version }}-maven-${{ matrix.module }}-${{ hashFiles(format('modules/{0}/deps.edn', matrix.module)) }} | |
- name: Download Job IG Profiles | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources | |
- name: Test | |
run: make -C modules/${{ matrix.module }} test | |
- name: Test Coverage | |
if: ${{ matrix.java-version == '21' && matrix.module != 'db' && matrix.module != 'jepsen' }} | |
run: make -C modules/${{ matrix.module }} test-coverage | |
- name: Upload Coverage Report | |
if: ${{ matrix.java-version == '21' && matrix.module != 'db' && matrix.module != 'jepsen' }} | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: coverage-report-${{ matrix.module }} | |
path: modules/${{ matrix.module }}/target/coverage/codecov.json | |
# Special treatment, because it runs much longer as the other modules. | |
test-coverage-db: | |
needs: job-ig | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cli: '1.12.0.1479' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-21-maven-db-coverage-${{ hashFiles('modules/db/deps.edn') }} | |
- name: Download Job IG Profiles | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources | |
- name: Test Coverage | |
run: make -C modules/db test-coverage | |
- name: Upload Coverage Report | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: coverage-report-db | |
path: modules/db/target/coverage/codecov.json | |
test-root: | |
strategy: | |
matrix: | |
java-version: | |
- '17' | |
- '21' | |
needs: job-ig | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cli: '1.12.0.1479' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-${{ matrix.java-version }}-maven-${{ hashFiles('deps.edn') }} | |
- name: Download Job IG Profiles | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources | |
- name: Test | |
run: make test-root | |
upload-coverage: | |
needs: [ test, test-coverage-db ] | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Download Coverage Reports | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
pattern: coverage-report-* | |
- name: Codecov Upload | |
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5 | |
with: | |
name: codecov-umbrella | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
build: | |
needs: job-ig | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cli: '1.12.0.1479' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-21-maven-build-${{ hashFiles('**/deps.edn') }} | |
- name: Download Job IG Profiles | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources | |
- name: Build Uberjar | |
run: make uberjar | |
- name: Upload Blaze Uberjar | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: blaze-uberjar | |
path: target/blaze-*-standalone.jar | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3 | |
- name: Build and Export to Docker | |
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6 | |
with: | |
context: . | |
tags: blaze:latest | |
outputs: type=docker,dest=/tmp/blaze.tar | |
- name: Upload Blaze Image | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: blaze-image | |
path: /tmp/blaze.tar | |
build-frontend: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 | |
with: | |
node-version: 21 | |
- name: Build Frontend | |
run: make build-frontend | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3 | |
- name: Build and Export to Docker | |
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6 | |
with: | |
context: modules/frontend | |
tags: blaze-frontend:latest | |
outputs: type=docker,dest=/tmp/blaze-frontend.tar | |
- name: Upload Blaze Image | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: blaze-frontend-image | |
path: /tmp/blaze-frontend.tar | |
image-scan: | |
needs: [ build, build-frontend ] | |
runs-on: ubuntu-24.04 | |
permissions: | |
security-events: write | |
strategy: | |
matrix: | |
image: | |
- blaze | |
- blaze-frontend | |
steps: | |
- name: Download Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: ${{ matrix.image }}-image | |
path: /tmp | |
- name: Load Image | |
run: docker load --input /tmp/${{ matrix.image }}.tar | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Run Trivy Vulnerability Scanner | |
uses: aquasecurity/trivy-action@18f2510ee396bbf400402947b394f2dd8c87dbb0 # 0.29.0 | |
with: | |
image-ref: ${{ matrix.image }}:latest | |
format: sarif | |
output: trivy-results.sarif | |
severity: 'CRITICAL,HIGH' | |
timeout: '15m0s' | |
env: | |
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db:2 | |
TRIVY_JAVA_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-java-db:1 | |
- name: Upload Trivy Scan Results to GitHub Security Tab | |
if: ${{ (github.repository_owner == 'samply') || (vars.IMAGE_SCAN_UPLOAD == 'true') }} | |
uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3 | |
with: | |
sarif_file: trivy-results.sarif | |
cql-expr-cache-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENABLE_ADMIN_API=true -e CQL_EXPR_CACHE_SIZE=1000 -p 8080:8080 -p 8081:8081 -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Ensure that the State of PatientLastChange Index is Current | |
run: .github/scripts/check-patient-last-change-index-state.sh current | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Prometheus Metrics | |
run: .github/scripts/test-cql-expr-cache-metrics.sh | |
- name: Check Total-Number of Resources are 92114 | |
run: .github/scripts/check-total-number-of-resources.sh 92114 | |
- name: Evaluate CQL Query 1 | |
run: .github/scripts/evaluate-measure.sh q1 56 | |
- name: Evaluate CQL Query 1 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q1 56 | |
- name: Evaluate CQL Query 1 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q1 56 | |
- name: Evaluate CQL Query 1 on Individual Patients | |
run: .github/scripts/evaluate-patient-q1-measure.sh | |
- name: Evaluate CQL Query 2 | |
run: .github/scripts/evaluate-measure.sh q2 42 | |
- name: Evaluate CQL Query 2 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q2 42 | |
- name: Evaluate CQL Query 2 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q2 42 | |
- name: Evaluate CQL Query 4 | |
run: .github/scripts/evaluate-measure.sh q4 0 | |
- name: Evaluate CQL Query 4 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q4 0 | |
- name: Evaluate CQL Query 4 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q4 0 | |
- name: Evaluate CQL Query 7 | |
run: .github/scripts/evaluate-measure.sh q7 81 | |
- name: Evaluate CQL Query 7 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q7 81 | |
- name: Evaluate CQL Query 7 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q7 81 | |
- name: Evaluate CQL Query 14 | |
run: .github/scripts/evaluate-measure.sh q14 96 | |
- name: Check Bloom Filter | |
run: .github/scripts/check-bloom-filter.sh a08d0235112a8033c36c5d33564aaa00f4190281e4db8f7ec1d8d55cd7f4c56f 96 | |
- name: Evaluate CQL Query 14 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q14 96 | |
- name: Evaluate CQL Query 14 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q14 96 | |
- name: Evaluate CQL Query 17 | |
run: .github/scripts/evaluate-measure.sh q17 120 | |
- name: Evaluate CQL Query 17 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q17 120 | |
- name: Evaluate CQL Query 17 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q17 120 | |
- name: Evaluate CQL Query 20 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q20-stratifier-city 120 | |
- name: Evaluate CQL Query 21 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q21-stratifier-city-of-only-women 64 | |
- name: Evaluate CQL Query 26 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q26-stratifier-bmi 120 | |
- name: Evaluate CQL Query 27 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q27-stratifier-calculated-bmi 120 | |
- name: Evaluate CQL Query 32 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q32-stratifier-underweight 120 | |
- name: Evaluate CQL Query 36 | |
run: .github/scripts/evaluate-measure.sh q36-parameter 86 | |
- name: Check Bloom Filter | |
run: .github/scripts/check-bloom-filter.sh fbb79d85457069c8e1926c949690deecd60d751942d5b0cd0b61c08e6029224c 86 | |
- name: Evaluate CQL Query 36 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q36-parameter 86 | |
- name: Evaluate CQL Query 37 | |
run: .github/scripts/evaluate-measure.sh q37-overlaps 24 | |
- name: Check Bloom Filter | |
run: .github/scripts/check-bloom-filter.sh 9fe779d821d7647831331b490939aa0cdf314d76c9b2a9518ffaf559353db043 24 | |
- name: Evaluate CQL Query 37 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q37-overlaps 24 | |
- name: Evaluate CQL Query 37 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q37-overlaps 24 | |
- name: Evaluate CQL Query 46 | |
run: .github/scripts/evaluate-measure.sh q46-between-date 19 | |
- name: Check Bloom Filter | |
run: .github/scripts/check-bloom-filter.sh 237bcfac3e879272f508e143095e4a0025e1b54505bbb2cf36fbda83dec237f2 19 | |
- name: Evaluate CQL Query 46 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q46-between-date 19 | |
integration-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
variant: | |
- standalone | |
- distributed | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Install xq | |
run: .github/scripts/install-xq.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ALLOW_MULTIPLE_DELETE=true -e ENABLE_INTERACTION_DELETE_HISTORY=true -e ENABLE_OPERATION_PATIENT_PURGE=true -p 8080:8080 -p 8081:8081 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
if: ${{ matrix.variant == 'standalone' }} | |
- name: Run Kafka, Cassandra and Blaze | |
run: docker compose -f .github/distributed-test/docker-compose.yml up -d | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
if: ${{ matrix.variant == 'standalone' }} | |
- name: Wait for Blaze 1 | |
run: .github/scripts/wait-for-url.sh http://localhost:8081/metrics | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Wait for Blaze 2 | |
run: .github/scripts/wait-for-url.sh http://localhost:8082/metrics | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Logs | |
run: docker logs blaze | |
if: ${{ matrix.variant == 'standalone' }} | |
- name: Docker Logs Kafka | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs kafka | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Logs Cassandra 1 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs cassandra-1 | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Logs Cassandra 2 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs cassandra-2 | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Logs Blaze 1 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs blaze-1 | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Logs Blaze 2 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs blaze-2 | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Stats | |
run: docker stats --no-stream | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Check Capability Statement Filtered by _elements | |
run: .github/scripts/check-capability-statement-filtered.sh | |
- name: Check Capability Statement Caching | |
run: .github/scripts/check-capability-statement-caching.sh | |
- name: Check Referential Integrity Enforced | |
run: .github/scripts/check-referential-integrity-enforced.sh | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Check Total-Number of Resources are 92114 | |
run: .github/scripts/check-total-number-of-resources.sh 92114 | |
- name: Check Resource Totals | |
run: .github/scripts/check-resource-totals.sh | |
- name: Count Resources | |
run: blazectl count-resources --server http://localhost:8080/fhir | |
- name: Download All Resources | |
run: .github/scripts/download-all-resources.sh | |
- name: Download Patient Resources | |
run: .github/scripts/download-resources.sh Patient | |
- name: Download Male Patient Resources | |
run: .github/scripts/download-resources-query.sh Patient "gender=male" 56 | |
- name: Download Female Patient Resources | |
run: .github/scripts/download-resources-query.sh Patient "gender=female" 64 | |
- name: Download Patient Resources - Including Observation, Condition, Encounter and Procedure | |
run: .github/scripts/revinclude.sh | |
- name: Download Observation Resources | |
run: .github/scripts/download-resources.sh Observation | |
- name: Download Observation Resources with special LOINC Codes | |
run: .github/scripts/download-resources-query.sh Observation "code=http://loinc.org|10230-1,http://loinc.org|10480-2,http://loinc.org|10834-0,http://loinc.org|14804-9,http://loinc.org|14959-1,http://loinc.org|1742-6,http://loinc.org|1751-7,http://loinc.org|17861-6,http://loinc.org|18262-6,http://loinc.org|19123-9" 2399 | |
- name: Download Observation Resources with all LOINC Codes | |
run: .github/scripts/download-resources-query.sh Observation "_count=500&code=http://loinc.org|10230-1,http://loinc.org|10480-2,http://loinc.org|10834-0,http://loinc.org|14804-9,http://loinc.org|14959-1,http://loinc.org|1742-6,http://loinc.org|1751-7,http://loinc.org|17861-6,http://loinc.org|18262-6,http://loinc.org|19123-9,http://loinc.org|1920-8,http://loinc.org|1960-4,http://loinc.org|1975-2,http://loinc.org|1988-5,http://loinc.org|19926-5,http://loinc.org|19994-3,http://loinc.org|2019-8,http://loinc.org|2028-9,http://loinc.org|20454-5,http://loinc.org|20505-4,http://loinc.org|20565-8,http://loinc.org|20570-8,http://loinc.org|2069-3,http://loinc.org|2075-0,http://loinc.org|2085-9,http://loinc.org|2093-3,http://loinc.org|21000-5,http://loinc.org|2157-6,http://loinc.org|2160-0,http://loinc.org|21905-5,http://loinc.org|21906-3,http://loinc.org|21907-1,http://loinc.org|21908-9,http://loinc.org|2276-4,http://loinc.org|2339-0,http://loinc.org|2345-7,http://loinc.org|2498-4,http://loinc.org|2500-7,http://loinc.org|2502-3,http://loinc.org|2514-8,http://loinc.org|2532-0,http://loinc.org|25428-4,http://loinc.org|2571-8,http://loinc.org|26881-3,http://loinc.org|2703-7,http://loinc.org|2708-6,http://loinc.org|2713-6,http://loinc.org|2744-1,http://loinc.org|2823-3,http://loinc.org|28245-9,http://loinc.org|2857-1,http://loinc.org|2885-2,http://loinc.org|29463-7,http://loinc.org|2947-0,http://loinc.org|2951-2,http://loinc.org|3094-0,http://loinc.org|32167-9,http://loinc.org|32207-3,http://loinc.org|32465-7,http://loinc.org|32623-1,http://loinc.org|33728-7,http://loinc.org|33756-8,http://loinc.org|33762-6,http://loinc.org|33914-3,http://loinc.org|33959-8,http://loinc.org|38208-5,http://loinc.org|38265-5,http://loinc.org|38483-4,http://loinc.org|39156-5,http://loinc.org|44667-4,http://loinc.org|44963-7,http://loinc.org|4544-3,http://loinc.org|4548-4,http://loinc.org|46240-8,http://loinc.org|46288-7,http://loinc.org|48065-7,http://loinc.org|49765-1,http://loinc.org|55277-8,http://loinc.org|5767-9,http://loinc.org|5770-3,http://loinc.org|5778-6,http://loinc.org|57905-2,http://loinc.org|5792-7,http://loinc.org|5794-3,http://loinc.org|5797-6,http://loinc.org|5799-2,http://loinc.org|5802-4,http://loinc.org|5803-2,http://loinc.org|5804-0,http://loinc.org|5811-5,http://loinc.org|5902-2,http://loinc.org|59032-3,http://loinc.org|5905-5,http://loinc.org|59408-5,http://loinc.org|59557-9,http://loinc.org|59576-9,http://loinc.org|6075-6,http://loinc.org|6082-2,http://loinc.org|6085-5,http://loinc.org|6095-4,http://loinc.org|6106-9,http://loinc.org|6158-0,http://loinc.org|6189-5,http://loinc.org|6206-7,http://loinc.org|6246-3,http://loinc.org|6248-9,http://loinc.org|6273-7,http://loinc.org|6276-0,http://loinc.org|6298-4,http://loinc.org|6299-2,http://loinc.org|6301-6,http://loinc.org|63513-6,http://loinc.org|65750-2,http://loinc.org|66519-0,http://loinc.org|66524-0,http://loinc.org|66529-9,http://loinc.org|66534-9,http://loinc.org|6690-2,http://loinc.org|6768-6,http://loinc.org|6833-8,http://loinc.org|6844-5,http://loinc.org|69453-9,http://loinc.org|704-7,http://loinc.org|706-2,http://loinc.org|711-2,http://loinc.org|713-8,http://loinc.org|718-7,http://loinc.org|71802-3,http://loinc.org|72106-8,http://loinc.org|72166-2,http://loinc.org|72514-3,http://loinc.org|7258-7,http://loinc.org|731-0,http://loinc.org|736-9,http://loinc.org|742-7,http://loinc.org|751-8,http://loinc.org|75325-1,http://loinc.org|76690-7,http://loinc.org|770-8,http://loinc.org|77606-2,http://loinc.org|777-3,http://loinc.org|785-6,http://loinc.org|786-4,http://loinc.org|787-2,http://loinc.org|788-0,http://loinc.org|789-8,http://loinc.org|80382-5,http://loinc.org|80383-3,http://loinc.org|8302-2,http://loinc.org|8310-5,http://loinc.org|8331-1,http://loinc.org|8478-0,http://loinc.org|85318-4,http://loinc.org|85319-2,http://loinc.org|85337-4,http://loinc.org|85339-0,http://loinc.org|85352-3,http://loinc.org|85354-9,http://loinc.org|88020-3,http://loinc.org|88021-1,http://loinc.org|88040-1,http://loinc.org|88262-1,http://loinc.org|8867-4,http://loinc.org|89579-7,http://loinc.org|91148-7,http://loinc.org|92130-4,http://loinc.org|92131-2,http://loinc.org|92134-6,http://loinc.org|92138-7,http://loinc.org|92139-5,http://loinc.org|92140-3,http://loinc.org|92141-1,http://loinc.org|92142-9,http://loinc.org|9279-1,http://loinc.org|94040-3,http://loinc.org|94531-1,http://loinc.org|9843-4,http://loinc.org|99999-0" 42929 | |
- name: Download Observation Resources of male Patients | |
run: .github/scripts/download-resources-query.sh Observation "patient.gender=male" 20466 | |
- name: Download Observation Resources of male Patients Sorted by ID | |
run: .github/scripts/download-resources-query-sort.sh Observation "patient.gender=male" "_id" 20466 | |
- name: Download Observation Resources of male Patients Sorted Ascending by Last Updated | |
run: .github/scripts/download-resources-query-sort.sh Observation "patient.gender=male" "_lastUpdated" 20466 | |
- name: Download Observation Resources of male Patients Sorted Descending by Last Updated | |
run: .github/scripts/download-resources-query-sort.sh Observation "patient.gender=male" "-_lastUpdated" 20466 | |
- name: Download Laboratory Observation Resources Sorted by ID | |
run: .github/scripts/download-resources-query-sort.sh Observation "category=laboratory" "_id" 29206 | |
- name: Download Laboratory Observation Resources Sorted Ascending by Last Updated | |
run: .github/scripts/download-resources-query-sort.sh Observation "category=laboratory" "_lastUpdated" 29206 | |
- name: Download Observation Resources of female Patients | |
run: .github/scripts/download-resources-query.sh Observation "_count=500&patient.gender=female" 22463 | |
- name: Download Observation Resources of the year 1970 | |
run: .github/scripts/download-resources-query.sh Observation "date=1970" 59 | |
- name: Download Observation Resources of the year 1970 Sorted by ID | |
run: .github/scripts/download-resources-query-sort.sh Observation "date=1970" "_id" 59 | |
- name: Download Observation Resources of the year 1980 | |
run: .github/scripts/download-resources-query.sh Observation "date=1980" 0 | |
- name: Download Observation Resources of the year 1980 Sorted by ID | |
run: .github/scripts/download-resources-query-sort.sh Observation "date=1980" "_id" 0 | |
- name: Download Observation Resources of the year 1990 | |
run: .github/scripts/download-resources-query.sh Observation "date=1990" 19 | |
- name: Download Observation Resources of the year 2000 | |
run: .github/scripts/download-resources-query.sh Observation "date=2000" 101 | |
- name: Download Observation Resources of the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=2010" 995 | |
- name: Download Observation Resources of the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=2020" 17419 | |
- name: Download Observation Resources of the year 2020 Sorted by ID | |
run: .github/scripts/download-resources-query-sort.sh Observation "date=2020" "_id" 17419 | |
- name: Download Observation Resources not of the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=ne2020" 25510 | |
- name: Download Observation Resources not of the year 2020 Sorted by ID | |
run: .github/scripts/download-resources-query-sort.sh Observation "date=ne2020" "_id" 25510 | |
- name: Download Observation Resources greater than the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=gt2010" 38486 | |
- name: Download Observation Resources greater than the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=gt2020" 983 | |
- name: Download Observation Resources less than the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=lt2010" 3448 | |
- name: Download Observation Resources less than the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=lt2020" 24527 | |
- name: Download Observation Resources greater equal the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=ge2010" 39481 | |
- name: Download Observation Resources greater equal the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=ge2020" 18402 | |
- name: Download Observation Resources less equal the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=le2010" 4443 | |
- name: Download Observation Resources less equal the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=le2020" 41946 | |
- name: Download Observation Resources that start after the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=sa2010" 38486 | |
- name: Download Observation Resources that start after the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=sa2020" 983 | |
- name: Download Observation Resources that end before the year 2010 | |
run: .github/scripts/download-resources-query.sh Observation "date=eb2010" 3448 | |
- name: Download Observation Resources that end before the year 2020 | |
run: .github/scripts/download-resources-query.sh Observation "date=eb2020" 24527 | |
- name: Check Observation Date Search | |
run: .github/scripts/check-date-search.sh "Observation" | |
- name: Check Encounter Date Search | |
run: .github/scripts/check-date-search.sh "Encounter" | |
- name: Check DiagnosticReport Date Search | |
run: .github/scripts/check-date-search.sh "DiagnosticReport" | |
- name: Download Observation Resources of female Patients Sorted Ascending | |
run: .github/scripts/download-resources-query-sort.sh Observation "patient.gender=female" "_lastUpdated" 22463 | |
- name: Download Observation Resources of female Patients Sorted Descending | |
run: .github/scripts/download-resources-query-sort.sh Observation "patient.gender=female" "-_lastUpdated" 22463 | |
- name: Download Observation Resources - Including Patients | |
run: blazectl --no-progress --server http://localhost:8080/fhir download Observation -q '_include=Observation:patient' -o Observation-Patient.ndjson | |
- name: Download Observation Resources - Including Encounters and Patients | |
run: blazectl --no-progress --server http://localhost:8080/fhir download Observation -q '_include=Observation:encounter&_include=Observation:patient' -o Observation-Encounter-Patient.ndjson | |
- name: Download Observation Resources - Including Encounters and Encounter Patients | |
run: blazectl --no-progress --server http://localhost:8080/fhir download Observation -q '_include=Observation:encounter&_include:iterate=Encounter:patient' -o Observation-Encounter-Encounter-Patient.ndjson | |
- name: Download Condition Resources | |
run: .github/scripts/download-resources.sh Condition | |
- name: Download Condition Resources - Including Subjects | |
run: blazectl --no-progress --server http://localhost:8080/fhir download Condition -q '_include=Condition:subject' -o Condition-Subject.ndjson | |
- name: Download Condition Resources - Including Encounters | |
run: blazectl --no-progress --server http://localhost:8080/fhir download Condition -q '_include=Condition:encounter' -o Condition-Encounter.ndjson | |
- name: Download DiagnosticReport Resources | |
run: .github/scripts/download-resources.sh DiagnosticReport | |
- name: Download MedicationRequest Resources of Medications with code 854235 | |
run: .github/scripts/download-resources-query.sh MedicationRequest "medication.code=1736854" 112 | |
- name: Download MedicationRequest Resources of Medications with code 854235 Sorted Ascending | |
run: .github/scripts/download-resources-query-sort.sh MedicationRequest "medication.code=1736854" "_lastUpdated" 112 | |
- name: Download MedicationRequest Resources of Medications with code 854235 Sorted Descending | |
run: .github/scripts/download-resources-query-sort.sh MedicationRequest "medication.code=1736854" "-_lastUpdated" 112 | |
- name: Download MedicationRequest Resources - Including Medications | |
run: blazectl --no-progress --server http://localhost:8080/fhir download MedicationRequest -q '_include=MedicationRequest:medication' -o MedicationRequest.ndjson | |
- name: Download male Patient Resources having inpatient Encounters in 2010 | |
run: .github/scripts/download-resources-query.sh Patient "gender=male&_has:Encounter:patient:class=IMP&_has:Encounter:patient:date=2010" 8 | |
- name: Download female Patient Resources having inpatient Encounters in 2010 | |
run: .github/scripts/download-resources-query.sh Patient "gender=female&_has:Encounter:patient:class=IMP&_has:Encounter:patient:date=2010" 11 | |
- name: Download Observations using _elements=subject | |
run: .github/scripts/download-observations-elements.sh | |
- name: Download Observations of all Encounters using ID's | |
run: .github/scripts/download-observations-of-all-encounters.sh | |
- name: Search Observation _lastUpdated | |
run: .github/scripts/search-patient-last-updated.sh | |
- name: Search Observation _profile | |
run: .github/scripts/search-observation-profile.sh | |
- name: Search Compartment | |
run: .github/scripts/search-compartment.sh | |
- name: Evaluate CQL Query 1 | |
run: .github/scripts/evaluate-measure.sh q1 56 | |
- name: Evaluate CQL Query 1 as Batch | |
run: .github/scripts/evaluate-measure-as-batch.sh q1 56 | |
- name: Evaluate CQL Query 1 async | |
run: .github/scripts/evaluate-measure-async.sh q1 56 | |
- name: Evaluate CQL Query 1 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q1 56 | |
- name: Evaluate CQL Query 1 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q1 56 | |
- name: Evaluate CQL Query 1 - Subject List as Batch | |
run: .github/scripts/evaluate-measure-subject-list-as-batch.sh q1 56 | |
- name: Evaluate CQL Query 1 on Individual Patients | |
run: .github/scripts/evaluate-patient-q1-measure.sh | |
- name: Evaluate CQL Query 2 | |
run: .github/scripts/evaluate-measure.sh q2 42 | |
- name: Evaluate CQL Query 2 as Batch | |
run: .github/scripts/evaluate-measure-as-batch.sh q2 42 | |
- name: Evaluate CQL Query 2 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q2 42 | |
- name: Evaluate CQL Query 2 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q2 42 | |
- name: Evaluate CQL Query 2 - Subject List as Batch | |
run: .github/scripts/evaluate-measure-subject-list-as-batch.sh q2 42 | |
- name: Evaluate CQL Query 4 | |
run: .github/scripts/evaluate-measure.sh q4 0 | |
- name: Evaluate CQL Query 4 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q4 0 | |
- name: Evaluate CQL Query 4 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q4 0 | |
- name: Evaluate CQL Query 7 | |
run: .github/scripts/evaluate-measure.sh q7 81 | |
- name: Evaluate CQL Query 7 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q7 81 | |
- name: Evaluate CQL Query 7 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q7 81 | |
- name: Evaluate CQL Query 14 | |
run: .github/scripts/evaluate-measure.sh q14 96 | |
- name: Evaluate CQL Query 14 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q14 96 | |
- name: Evaluate CQL Query 14 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q14 96 | |
- name: Evaluate CQL Query 15 using Blazectl | |
run: .github/scripts/evaluate-measure.sh q15 31 | |
- name: Evaluate CQL Query 17 | |
run: .github/scripts/evaluate-measure.sh q17 120 | |
- name: Evaluate CQL Query 17 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q17 120 | |
- name: Evaluate CQL Query 17 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q17 120 | |
- name: Evaluate CQL Query 20 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q20-stratifier-city 120 | |
- name: Evaluate CQL Query 21 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q21-stratifier-city-of-only-women 64 | |
- name: Evaluate CQL Query 26 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q26-stratifier-bmi 120 | |
- name: Evaluate CQL Query 27 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q27-stratifier-calculated-bmi 120 | |
- name: Evaluate CQL Query 32 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh q32-stratifier-underweight 120 | |
- name: Evaluate CQL Query 36 | |
run: .github/scripts/evaluate-measure.sh q36-parameter 86 | |
- name: Evaluate CQL Query 36 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q36-parameter 86 | |
- name: Evaluate CQL Query 34 | |
run: .github/scripts/evaluate-measure.sh q37-overlaps 24 | |
- name: Evaluate CQL Query 34 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q37-overlaps 24 | |
- name: Evaluate CQL Query 34 - Subject List | |
run: .github/scripts/evaluate-measure-subject-list.sh q37-overlaps 24 | |
- name: Evaluate CQL Query 46 | |
run: .github/scripts/evaluate-measure.sh q46-between-date 19 | |
- name: Evaluate CQL Query 46 using Blazectl | |
run: .github/scripts/evaluate-measure-blazectl.sh q46-between-date 19 | |
- name: Forwarded Header HTTPS | |
run: .github/scripts/forwarded-header.sh https | |
- name: Forwarded Header HTTP | |
run: .github/scripts/forwarded-header.sh http | |
- name: X-Forwarded Headers HTTPS | |
run: .github/scripts/x-forwarded-headers.sh https | |
- name: X-Forwarded Headers HTTP | |
run: .github/scripts/x-forwarded-headers.sh http | |
- name: Delete | |
run: .github/scripts/delete.sh | |
- name: Delete Violating Referential Integrity | |
run: .github/scripts/check-referential-integrity-for-delete.sh 409 | |
- name: Delete After Referring Resource is Deleted Succeeds | |
run: .github/scripts/check-delete-succeeds-after-referring-resource-is-deleted.sh | |
- name: Batch | |
run: .github/scripts/batch.sh | |
- name: Batch Metadata | |
run: .github/scripts/batch-metadata.sh | |
- name: Transaction | |
run: .github/scripts/transaction.sh | |
- name: Transaction Read/Write | |
run: .github/scripts/transaction-rw.sh | |
- name: Transactional Delete Preserving Referential Integrity | |
run: .github/scripts/transactional-delete.sh | |
- name: Transaction with Invalid (Null) Resource | |
run: .github/scripts/transaction-null-resource.sh | |
- name: OPTIONS | |
run: curl -f -XOPTIONS http://localhost:8080/fhir/metadata | |
- name: Health | |
run: curl -f http://localhost:8080/health | |
- name: Health - HEAD | |
run: curl -f --head http://localhost:8080/health | |
- name: Not Acceptable | |
run: .github/scripts/not-acceptable.sh | |
- name: Conditional Update If-None-Match | |
run: .github/scripts/conditional-update-if-none-match.sh | |
- name: GraphQL Patient | |
run: .github/scripts/graphql.sh Patient | |
- name: GraphQL Observation | |
run: .github/scripts/graphql.sh Observation | |
- name: Link Header Encoding | |
run: .github/scripts/link-header-encoding.sh | |
- name: Paging uses a Stable Snapshot of the Database (Patient) | |
run: .github/scripts/follow-patient-next-link-after-write.sh | |
- name: Paging uses a Stable Snapshot of the Database (system) | |
run: .github/scripts/follow-system-next-link-after-write.sh | |
- name: Create Patient | |
run: .github/scripts/create-patient.sh | |
- name: Read Ignores T | |
run: .github/scripts/read-ignores-t.sh | |
- name: Patient Everything | |
run: .github/scripts/patient-everything.sh | |
- name: Patient Everything with Date Range | |
run: .github/scripts/patient-everything-date-range.sh | |
- name: Patient Everything Paged | |
run: .github/scripts/patient-everything-paged.sh | |
- name: Patient Everything Paged with Date Range | |
run: .github/scripts/patient-everything-paged-date-range.sh | |
- name: Patient Identical Update | |
run: .github/scripts/patient-identical-update.sh | |
- name: System History | |
run: .github/scripts/system-history-paged.sh | |
- name: Patient History | |
run: .github/scripts/patient-history-paged.sh | |
- name: Patient X79746011X History | |
run: .github/scripts/single-patient-history.sh X79746011X | |
- name: History Paging uses a Stable Snapshot of the Database (system) | |
run: .github/scripts/follow-system-history-next-link-after-write.sh | |
- name: History Paging uses a Stable Snapshot of the Database (Patient) | |
run: .github/scripts/follow-patient-history-next-link-after-write.sh | |
- name: History Paging uses a Stable Snapshot of the Database (single Patient) | |
run: .github/scripts/follow-single-patient-history-next-link-after-write.sh | |
- name: Count Async 17861-6 | |
run: .github/scripts/count-async.sh "17861-6" "299" | |
- name: Count Async 8310-5 | |
run: .github/scripts/count-async.sh "8310-5" "512" | |
- name: Cancel Async Query | |
run: .github/scripts/cancel-async.sh | |
- name: Search _tag | |
run: .github/scripts/search-tag.sh | |
- name: Binary Content Download - not found | |
run: .github/scripts/read-binary-content-not-found.sh | |
- name: Binary Content Download - found (via JSON) | |
run: .github/scripts/read-binary-content-via-json-found.sh | |
- name: Binary Content Download - found (via XML) | |
run: .github/scripts/read-binary-content-via-xml-found.sh | |
- name: Conditional Delete - Check Referential Integrity Violated | |
run: .github/scripts/conditional-delete-type/check-referential-integrity-violated.sh | |
- name: Conditional Delete - Delete All Provenance Resources | |
run: .github/scripts/conditional-delete-type/delete-all-resources-of-type.sh "Provenance" | |
- name: Conditional Delete - Delete All Observation Resources Fails | |
run: .github/scripts/conditional-delete-type/delete-all-observation-resources-fails.sh | |
- name: Create Patient With Ancient Birth Year | |
run: .github/scripts/create-patient-with-ancient-birth-year.sh | |
- name: Delete History | |
run: .github/scripts/delete-history.sh | |
- name: Conditional Delete - Delete All List Resources | |
run: .github/scripts/conditional-delete-type/delete-all-resources-of-type.sh "List" | |
- name: Patient Purge | |
run: .github/scripts/patient-purge.sh | |
- name: Prometheus Metrics | |
run: .github/scripts/test-metrics.sh | |
if: ${{ matrix.variant == 'standalone' }} | |
- name: Prometheus Metrics - Blaze 1 | |
run: curl -sf http://localhost:8081/metrics | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Prometheus Metrics - Blaze 2 | |
run: curl -sf http://localhost:8082/metrics | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Docker Stats | |
run: docker stats --no-stream | |
integration-test-synthea-1000: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e DB_BLOCK_CACHE_SIZE=2048 -e ENABLE_ADMIN_API=true -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Check Referential Integrity Enforced | |
run: .github/scripts/check-referential-integrity-enforced.sh | |
- name: Download Synthea Test Data | |
run: wget https://speicherwolke.uni-leipzig.de/index.php/s/kDsa2ifeMFdqK35/download/synthea-1000.tar | |
- name: Create Synthea Test Data Dir | |
run: mkdir test-data-synthea-1000 | |
- name: Unpack Synthea Test Data | |
run: tar -C test-data-synthea-1000 -xf synthea-1000.tar | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload test-data-synthea-1000 | |
- name: Compact All Column Families | |
run: .github/scripts/compact-all.sh | |
- name: Check Total-Number of Resources are 1099594 | |
run: .github/scripts/check-total-number-of-resources.sh 1099594 | |
- name: Count the number of Patients with Stress Conditions at Inpatient Encounters using FHIR Search | |
run: .github/scripts/count-patients.sh Condition "code=http://snomed.info/sct|73595000&encounter.class=http://terminology.hl7.org/CodeSystem/v3-ActCode|IMP" 13 | |
- name: Count the number of Patients with Stress Conditions at Inpatient Encounters using CQL | |
run: .github/scripts/evaluate-measure-blazectl.sh inpatient-stress 13 | |
- name: Condition Code Stratifier | |
run: .github/scripts/evaluate-measure-blazectl-stratifier.sh stratifier-condition-code 51599 | |
- name: Patient Everything Too Costly | |
run: .github/scripts/patient-everything-too-costly.sh | |
- name: Patient Everything Paged | |
run: .github/scripts/patient-everything-paged-1000.sh | |
- name: Docker Stats | |
run: docker stats --no-stream | |
integration-test-patient-purge: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e DB_BLOCK_CACHE_SIZE=512 -e ENABLE_OPERATION_PATIENT_PURGE=true -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Check Referential Integrity Enforced | |
run: .github/scripts/check-referential-integrity-enforced.sh | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Check Total-Number of Resources are 92114 | |
run: .github/scripts/check-total-number-of-resources.sh 92114 | |
- name: Patient Purge all | |
run: .github/scripts/patient-purge-all.sh | |
- name: Download All Resources | |
run: .github/scripts/download-all-resources.sh | |
- name: Download Patient Resources | |
run: .github/scripts/download-resources.sh Patient | |
- name: Check Resource Totals | |
run: .github/scripts/check-resource-totals-after-patient-purge.sh | |
- name: Docker Stats | |
run: docker stats --no-stream | |
integration-test-value-set-expand: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 | |
with: | |
node-version-file: .nvmrc | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: All KDS Terminology Resources | |
working-directory: .github/value-set-expand | |
run: npm install | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Upload KDS Terminology Resources | |
run: .github/value-set-expand/upload-all.sh | |
- name: Expand KDS Terminology Resources | |
run: .github/value-set-expand/expand.sh | |
not-enforcing-referential-integrity-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENFORCE_REFERENTIAL_INTEGRITY=false -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Check Referential Integrity Not Enforced | |
run: .github/scripts/check-referential-integrity-not-enforced.sh | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload -c1 .github/test-data/etl | |
- name: Check Total-Number of Resources are 5 | |
run: .github/scripts/check-total-number-of-resources.sh 5 | |
- name: Check Referential Integrity Not Enforced For Delete | |
run: .github/scripts/check-referential-integrity-for-delete.sh 204 | |
admin-api-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENABLE_ADMIN_API=true -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Create Invalid Jobs | |
run: .github/scripts/admin-api/create-invalid-jobs.sh | |
- name: Create Async Job | |
run: .github/scripts/admin-api/async-job.sh | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Compact Unknown Database | |
run: .github/scripts/compact-unknown-database.sh | |
# This test uploads many small transactions in order to show that Blaze can handle many small requests containing | |
# chunked payload blazectl uses. Versions of Blaze from 0.13.2 to 0.15.3, starting with the migration to Jetty, had | |
# the problem that the JSON parser did not read the entire inputstream so that terminal chunks could remain, which | |
# caused Jetty to close the stream. | |
small-transactions-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Generate Test Data | |
run: mkdir .github/test-data/small-txs && .github/scripts/gen-bundle-ndjson.sh > .github/test-data/small-txs/bundles.ndjson | |
- name: Load Data Sequentially | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload -c 1 .github/test-data/small-txs | |
- name: Load Data with Concurrency 2 | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload -c 2 .github/test-data/small-txs | |
big-transaction-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/big-tx | |
evaluate-measure-timeout-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e FHIR_OPERATION_EVALUATE_MEASURE_TIMEOUT=10 -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Evaluate CQL Query 1 | |
run: .github/scripts/evaluate-measure-timeout.sh q1 | |
include-without-referential-integrity-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENFORCE_REFERENTIAL_INTEGRITY=false -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Test Include | |
run: .github/scripts/include-without-referential-integrity.sh | |
chaining-without-referential-integrity-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENFORCE_REFERENTIAL_INTEGRITY=false -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Test Chaining | |
run: .github/scripts/chaining-without-referential-integrity.sh | |
# Test that a transaction can create a transaction bundle with references that will be taken "as-is" and not tried to | |
# resolve to existing resources | |
bundle-with-references-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/bundle-with-references | |
jepsen-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cli: '1.12.0.1479' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-21-maven-jepsen-${{ hashFiles('modules/jepsen/deps.edn') }} | |
- name: APT Update | |
run: sudo apt-get update | |
- name: Install Gnuplot | |
run: sudo apt-get install gnuplot | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENABLE_INTERACTION_DELETE_HISTORY=true -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Jepsen Register Test | |
run: make -C modules/jepsen register-test-fast | |
- name: Jepsen Resource History Test | |
run: make -C modules/jepsen resource-history-test-fast | |
openid-auth-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Keycloak | |
run: docker compose -f .github/openid-auth-test/docker-compose.yml up -d keycloak | |
- name: Wait for Keycloak | |
run: .github/scripts/wait-for-url.sh http://localhost:8090/health/ready | |
- name: Run Blaze | |
run: docker compose -f .github/openid-auth-test/docker-compose.yml up -d blaze | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs Keycloak | |
run: docker compose -f .github/openid-auth-test/docker-compose.yml logs keycloak | |
- name: Docker Logs Blaze | |
run: docker compose -f .github/openid-auth-test/docker-compose.yml logs blaze | |
- name: Unauthenticated Request | |
run: test "MSG_AUTH_REQUIRED" = "$(curl -s http://localhost:8080/fhir | jq -r .issue[0].details.coding[0].code)" | |
- name: Authenticated Request | |
run: .github/scripts/authenticated-request.sh | |
custom-search-parameters-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Keycloak and Blaze | |
run: docker compose -f .github/custom-search-parameters-test/docker-compose.yml up -d | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs Blaze | |
run: docker compose -f .github/custom-search-parameters-test/docker-compose.yml logs blaze | |
- name: Create Patient | |
run: .github/custom-search-parameters-test/create-patient.sh | |
- name: Search Patient | |
run: .github/custom-search-parameters-test/search-patient.sh | |
doc-copy-data-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Test Setup | |
run: docker compose -f docs/data-sync/copy/docker-compose.yml -f .github/doc-copy-data-test/docker-compose.override.yml up -d | |
- name: Wait for Source Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Load Data Into Source Blaze | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Wait for Destination Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8082/health | |
- name: Copy All Resources from Source to Destination | |
run: scripts/copy-data.sh http://localhost:8080/fhir http://localhost:8082/fhir | |
- name: Download Source Patients | |
run: blazectl download --server http://localhost:8080/fhir Patient | jq -c 'del(.meta.versionId) | del(.meta.lastUpdated)' > src-patients.ndjson | |
- name: Download Destination Patients | |
run: blazectl download --server http://localhost:8082/fhir Patient | jq -c 'del(.meta.versionId) | del(.meta.lastUpdated)' > dst-patients.ndjson | |
- name: Compare Source and Destination Patients | |
run: diff src-patients.ndjson dst-patients.ndjson | |
big-binary-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e DB_RESOURCE_CACHE_SIZE=0 -p 8080:8080 --read-only --tmpfs /tmp:exec -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Generate Large Binary Resources (JSON and XML) | |
run: .github/scripts/generate-large-binary-resource.sh | |
- name: Post Large Binary JSON Resource | |
run: curl -f -H Content-Type:application/fhir+json -H Prefer:return=minimal -d @large-binary.json http://localhost:8080/fhir/Binary | |
- name: Post Large Binary XML Resource | |
run: curl -f -H Content-Type:application/fhir+xml -H Prefer:return=minimal -d @large-binary.xml http://localhost:8080/fhir/Binary | |
- name: Download Both Resources | |
run: test "2" = "$(curl -s http://localhost:8080/fhir/Binary | jq .total)" | |
frontend-test: | |
needs: [ build, build-frontend ] | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 | |
with: | |
node-version: 21 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Download Blaze Frontend Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-frontend-image | |
path: /tmp | |
- name: Load Blaze Frontend Image | |
run: docker load --input /tmp/blaze-frontend.tar | |
# https://bugs.webkit.org/show_bug.cgi?id=160504 | |
- name: Add Blaze Localhost Entry needed for Webkit | |
run: | | |
sudo echo "127.0.0.1 blaze.localhost" | sudo tee -a /etc/hosts | |
sudo echo "127.0.0.1 keycloak.localhost" | sudo tee -a /etc/hosts | |
- name: Generate Ingress Certificates | |
run: make build-ingress | |
- name: Run Keycloak | |
run: docker compose -f modules/frontend-e2e/docker-compose.yml up -d keycloak | |
- name: Sleep 20 Seconds | |
run: sleep 20 | |
- name: Run Everything Else | |
run: docker compose -f modules/frontend-e2e/docker-compose.yml up -d | |
- name: Sleep 30 Seconds | |
run: sleep 30 | |
- name: Docker Logs | |
run: docker compose -f modules/frontend-e2e/docker-compose.yml logs | |
- name: Load Data | |
run: modules/frontend-e2e/upload.sh | |
- name: Check Frontend | |
run: .github/scripts/check-frontend.sh | |
- name: Check Column Family resource-as-of-index | |
run: .github/scripts/admin-api/column-family-metadata.sh resource-as-of-index | |
- name: Check Column Family search-param-value-index | |
run: .github/scripts/admin-api/column-family-metadata.sh search-param-value-index | |
- name: Download Patient Resources | |
run: modules/frontend-e2e/download-patient-resources.sh | |
- name: Install Playwright | |
run: make -C modules/frontend-e2e install | |
- name: Run Playwright Tests | |
run: make -C modules/frontend-e2e test | |
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4 | |
with: | |
name: playwright-report | |
path: modules/frontend-e2e/playwright-report/ | |
missing-resource-content-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Create a Data Dir | |
run: mkdir data | |
- name: Run Blaze | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -p 8080:8080 --read-only --tmpfs /tmp:exec -v "$(pwd)/data:/app/data" blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Docker Logs | |
run: docker logs blaze | |
- name: Create Patient | |
run: .github/scripts/create-patient-0.sh | |
- name: Stop Blaze | |
run: docker stop blaze | |
- name: Remove Resource Database | |
run: rm -r data/resource | |
- name: Start Blaze Again | |
run: docker start blaze | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
# TODO: Reactivate if we have an idea how to handle the missing DocumentReference | |
# of the page ID cipher at startup. | |
#- name: Fetch Patient Expecting an Error | |
# run: .github/scripts/fetch-resource-0-with-missing-resource-content.sh | |
# This test ensures that older versions of Blaze will migrate successfully to | |
# the new database schema especially building the PatientLastChange index. | |
build-patient-last-change-index-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Blaze in the Version 0.27 before Introduction of the PatientLastChange Index | |
run: docker run --name blaze --rm -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENABLE_ADMIN_API=true -p 8080:8080 -v blaze-data:/app/data samply/blaze:0.27 | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Load Data | |
run: blazectl --no-progress --server http://localhost:8080/fhir upload .github/test-data/synthea | |
- name: Ensure that the PatientLastChange Index does not exist | |
run: .github/scripts/check-patient-last-change-index-missing.sh | |
- name: Shut down Blaze | |
run: docker stop blaze | |
- name: Run Latest Blaze with the PatientLastChange Index | |
run: docker run --name blaze -d -e JAVA_TOOL_OPTIONS=-Xmx2g -e ENABLE_ADMIN_API=true -e LOG_LEVEL=debug -p 8080:8080 -v blaze-data:/app/data blaze:latest | |
- name: Wait for Blaze | |
run: .github/scripts/wait-for-url.sh http://localhost:8080/health | |
- name: Ensure that the State of PatientLastChange Index is Current | |
run: .github/scripts/check-patient-last-change-index-state.sh current | |
jepsen-distributed-test: | |
needs: build | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@cc67f8308550d0f18b0ba445c2476f84626a5d6a # 13.1 | |
with: | |
cli: '1.12.0.1479' | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-21-maven-jepsen-${{ hashFiles('modules/jepsen/deps.edn') }} | |
- name: APT Update | |
run: sudo apt-get update | |
- name: Install Gnuplot | |
run: sudo apt-get install gnuplot | |
- name: Download Blaze Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-image | |
path: /tmp | |
- name: Load Blaze Image | |
run: docker load --input /tmp/blaze.tar | |
- name: Run Kafka, Cassandra and Blaze | |
run: docker compose -f .github/distributed-test/docker-compose.yml up -d | |
- name: Wait for Blaze 1 | |
run: .github/scripts/wait-for-url.sh http://localhost:8081/metrics | |
- name: Wait for Blaze 2 | |
run: .github/scripts/wait-for-url.sh http://localhost:8082/metrics | |
- name: Docker Logs Kafka | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs kafka | |
- name: Docker Logs Cassandra 1 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs cassandra-1 | |
- name: Docker Logs Cassandra 2 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs cassandra-2 | |
- name: Docker Logs Blaze 1 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs blaze-1 | |
- name: Docker Logs Blaze 2 | |
run: docker compose -f .github/distributed-test/docker-compose.yml logs blaze-2 | |
- name: Docker Stats | |
run: docker stats --no-stream | |
- name: Check Capability Statement | |
run: .github/scripts/check-capability-statement.sh | |
- name: Jepsen Register Test | |
run: make -C modules/jepsen register-test-slow | |
- name: Jepsen Resource History Test | |
run: make -C modules/jepsen resource-history-test-slow | |
- name: Docker Stats | |
run: docker stats --no-stream | |
# This job exists only as status check target for the branch protection | |
# because we can't use push-image as this isn't executed in forks. | |
pre-push-image: | |
needs: | |
- fmt | |
- lint | |
- test | |
- test-root | |
- image-scan | |
- cql-expr-cache-test | |
- integration-test | |
- integration-test-synthea-1000 | |
- integration-test-patient-purge | |
- integration-test-value-set-expand | |
- not-enforcing-referential-integrity-test | |
- admin-api-test | |
- small-transactions-test | |
- big-transaction-test | |
- evaluate-measure-timeout-test | |
- include-without-referential-integrity-test | |
- chaining-without-referential-integrity-test | |
- bundle-with-references-test | |
- jepsen-test | |
- jepsen-distributed-test | |
- openid-auth-test | |
- doc-copy-data-test | |
- big-binary-test | |
- frontend-test | |
- missing-resource-content-test | |
- custom-search-parameters-test | |
- build-patient-last-change-index-test | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
push-image: | |
if: github.event_name != 'pull_request' || (github.event.pull_request.base.repo.full_name == github.event.pull_request.head.repo.full_name) | |
needs: | |
- pre-push-image | |
runs-on: ubuntu-24.04 | |
permissions: | |
packages: write | |
strategy: | |
matrix: | |
image: | |
- name: ${{ github.event.repository.name }} | |
context: . | |
- name: ${{ github.event.repository.name }}-frontend | |
context: modules/frontend | |
env: | |
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Blaze Uberjar | |
if: ${{ matrix.image.context == '.' }} | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: blaze-uberjar | |
path: target | |
- name: Setup Node | |
if: ${{ matrix.image.context == 'modules/frontend' }} | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 | |
with: | |
node-version: 21 | |
- name: Build Frontend | |
if: ${{ matrix.image.context == 'modules/frontend' }} | |
run: make build-frontend | |
- name: Download Image | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 | |
with: | |
name: ${{ matrix.image.name }}-image | |
path: /tmp | |
- name: Load Image | |
run: docker load --input /tmp/${{ matrix.image.name }}.tar | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3 | |
- name: Login to GHCR | |
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: GHCR meta | |
id: ghcr-meta | |
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 # v5 | |
with: | |
images: | | |
ghcr.io/${{ github.repository_owner }}/${{ matrix.image.name }} | |
tags: | | |
type=schedule | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- name: Build and push to GHCR | |
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6 | |
with: | |
context: ${{ matrix.image.context }} | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.ghcr-meta.outputs.tags }} | |
labels: ${{ steps.ghcr-meta.outputs.labels }} | |
- name: Login to DockerHub | |
if: ${{ env.dockerhub_username != '' }} | |
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: DockerHub meta | |
if: ${{ env.dockerhub_username != '' }} | |
id: dockerhub-meta | |
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 # v5 | |
with: | |
images: | | |
${{ github.repository_owner }}/${{ matrix.image.name }} | |
tags: | | |
type=schedule | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- name: Build and push to DockerHub | |
if: ${{ env.dockerhub_username != '' }} | |
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6 | |
with: | |
context: ${{ matrix.image.context }} | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.dockerhub-meta.outputs.tags }} | |
labels: ${{ steps.dockerhub-meta.outputs.labels }} | |
release: | |
if: github.ref_type == 'tag' | |
needs: | |
- push-image | |
runs-on: ubuntu-24.04 | |
permissions: | |
contents: write | |
steps: | |
- name: Release | |
uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2 | |
with: | |
files: target/blaze-*-standalone.jar | |
build-pages: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4 | |
with: | |
node-version: 21 | |
cache: npm | |
cache-dependency-path: 'docs/package-lock.json' | |
- name: Build | |
working-directory: docs | |
env: | |
DOCS_BASE: "/${{ github.event.repository.name }}/" | |
run: make build | |
- name: Setup Pages | |
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 | |
with: | |
path: docs/.vitepress/dist | |
deploy-pages: | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-24.04 | |
needs: [ build-pages ] | |
permissions: | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 |