Merge pull request #1832 from samply/renovate/ossf-scorecard-action-2.x #6202
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: | |
branches: | |
- main | |
tags: | |
- 'v*.*.*' | |
pull_request: | |
branches: | |
- main | |
merge_group: | |
jobs: | |
fmt: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cljfmt: 0.12.0 | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Check Formatting | |
run: make fmt | |
lint: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
clj-kondo: '2024.03.13' | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Lint | |
run: make lint | |
job-ig: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 21 | |
- name: Install SUSHI | |
run: npm install -g fsh-sushi | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 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@65462800fd760344b1a7b4382951275a0abb4808 # 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-re-index | |
- job-scheduler | |
- job-util | |
- kv | |
- luid | |
- metrics | |
- module-base | |
- openid-auth | |
- operation-graphql | |
- operation-measure-evaluate-measure | |
- operation-patient-everything | |
- operation-totals | |
- page-store | |
- page-store-cassandra | |
- rest-api | |
- rest-util | |
- rocksdb | |
- scheduler | |
- server | |
- thread-pool-executor-collector | |
java-version: | |
- '11' | |
- '17' | |
- '21' | |
exclude: | |
- module: jepsen | |
java-version: '11' | |
- module: jepsen | |
java-version: '17' | |
needs: job-ig | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.11.2.1446' | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # 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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources | |
- name: Test | |
run: make -C modules/${{ matrix.module }} test | |
test-root: | |
strategy: | |
matrix: | |
java-version: | |
- '11' | |
- '17' | |
- '21' | |
needs: job-ig | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.11.2.1446' | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # 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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 | |
with: | |
name: job-ig-profiles | |
path: job-ig/fsh-generated/resources | |
- name: Test | |
run: make test-root | |
build: | |
needs: [ fmt, lint, test, test-root ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.11.2.1446' | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-17-maven-build-${{ hashFiles('**/deps.edn') }} | |
- name: Download Job IG Profiles | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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@65462800fd760344b1a7b4382951275a0abb4808 # v4 | |
with: | |
name: blaze-uberjar | |
path: target/blaze-*-standalone.jar | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3 | |
- name: Build and Export to Docker | |
uses: docker/build-push-action@15560696de535e4014efeff63c48f16952e52dd1 # v6 | |
with: | |
context: . | |
tags: blaze:latest | |
outputs: type=docker,dest=/tmp/blaze.tar | |
- name: Upload Blaze Image | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 | |
with: | |
name: blaze-image | |
path: /tmp/blaze.tar | |
build-frontend: | |
needs: [ fmt, lint ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 21 | |
- name: Build Frontend | |
run: make build-frontend | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3 | |
- name: Build and Export to Docker | |
uses: docker/build-push-action@15560696de535e4014efeff63c48f16952e52dd1 # 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@65462800fd760344b1a7b4382951275a0abb4808 # v4 | |
with: | |
name: blaze-frontend-image | |
path: /tmp/blaze-frontend.tar | |
image-scan: | |
needs: [ build, build-frontend ] | |
runs-on: ubuntu-22.04 | |
permissions: | |
security-events: write | |
strategy: | |
matrix: | |
image: | |
- blaze | |
- blaze-frontend | |
steps: | |
- name: Download Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Run Trivy Vulnerability Scanner | |
uses: aquasecurity/trivy-action@master | |
with: | |
image-ref: ${{ matrix.image }}:latest | |
format: sarif | |
output: trivy-results.sarif | |
severity: 'CRITICAL,HIGH' | |
timeout: '15m0s' | |
- 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@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3 | |
with: | |
sarif_file: trivy-results.sarif | |
cql-expr-cache-test: | |
needs: build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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: Check Bloom Filter | |
run: .github/scripts/check-bloom-filter.sh 484cc96511a406d40ee8eeb4de6a49b05b3766ddef8eb05ac57c6139d774eddc 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 fab7fc40f75f294787d8b2090788a291cdaf71640d6dcfe5441c00403225a256 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 d4fc6cde1636852f9e362a68ca7be027a66bf7cb38ebff9c256c3eb2179c2639 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 8a572962e0540de1bb4f4bf5c0101ff06be3ae69f4cd489509a6cf8d1646d1e1 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 5a1fe6d1b996aed4783f0ee04e6e74927d7ddccc407b0818a8a800769458020b 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-22.04 | |
strategy: | |
matrix: | |
variant: | |
- standalone | |
- distributed | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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 -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 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: 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 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: Prometheus Metrics | |
run: .github/scripts/test-metrics.sh | |
if: ${{ matrix.variant == 'standalone' }} | |
- name: Prometheus Metrics - Blaze 1 | |
run: curl -f http://localhost:8081/metrics | |
if: ${{ matrix.variant == 'distributed' }} | |
- name: Prometheus Metrics - Blaze 2 | |
run: curl -f 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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 -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: 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 | |
not-enforcing-referential-integrity-test: | |
needs: build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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 | |
# 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.11.2.1446' | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-17-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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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: Jepsen Register Test | |
run: make -C modules/jepsen register-test-fast | |
openid-auth-test: | |
needs: build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 21 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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@65462800fd760344b1a7b4382951275a0abb4808 # v4 | |
with: | |
name: playwright-report | |
path: modules/frontend-e2e/playwright-report/ | |
missing-resource-content-test: | |
needs: build | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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 | |
- 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-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install Blazectl | |
run: .github/scripts/install-blazectl.sh | |
- name: Download Blaze Image | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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-22.04 | |
steps: | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Setup Clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.11.2.1446' | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Cache Local Maven Repo | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-temurin-17-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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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: Docker Stats | |
run: docker stats --no-stream | |
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: | |
- image-scan | |
- cql-expr-cache-test | |
- integration-test | |
- integration-test-synthea-1000 | |
- 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-22.04 | |
permissions: | |
packages: write | |
contents: 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Download Blaze Uberjar | |
if: ${{ matrix.image.context == '.' }} | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 | |
with: | |
name: blaze-uberjar | |
path: target | |
- name: Setup Node | |
if: ${{ matrix.image.context == 'modules/frontend' }} | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # 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@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # 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@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3 | |
- name: Login to GHCR | |
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: GHCR meta | |
id: ghcr-meta | |
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # 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@15560696de535e4014efeff63c48f16952e52dd1 # 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@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: DockerHub meta | |
if: ${{ env.dockerhub_username != '' }} | |
id: dockerhub-meta | |
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # 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@15560696de535e4014efeff63c48f16952e52dd1 # 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-22.04 | |
permissions: | |
packages: write | |
contents: write | |
steps: | |
- name: Release | |
uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v2 | |
with: | |
files: target/blaze-*-standalone.jar | |
build-pages: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Setup Node | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 | |
with: | |
node-version: 18 | |
cache: npm | |
cache-dependency-path: 'docs/package-lock.json' | |
- name: Install dependencies | |
working-directory: ./docs | |
run: npm install | |
- name: Build | |
working-directory: ./docs | |
env: | |
DOCS_BASE: "/${{ github.event.repository.name }}/" | |
run: npm run docs: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/master' | |
runs-on: ubuntu-22.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 |