Skip to content

Add support for historical data sorting #6906

Add support for historical data sorting

Add support for historical data sorting #6906

Workflow file for this run

name: Build and Test
on:
pull_request:
paths-ignore:
- '**.md'
- 'docs/**'
- 'demo/**'
- '.github/workflows/site.yml'
jobs:
build-tools:
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.labels.*.name, 'ci-skip')"
strategy:
matrix:
java: [ '11' ]
fail-fast: false
steps:
- uses: actions/checkout@v2.3.3
- name: Setup java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Build tools
run: mvn -B install --file fhir-tools -Dmaven.wagon.http.retryHandler.count=3
- name: Build samples with condensed json
run: mvn -B install --file fhir-examples -P condense-json -Dmaven.wagon.http.retryHandler.count=3
- name: Build parent with condensed json
run: mvn -B install --file fhir-parent -P integration,condense-json -Dmaven.wagon.http.retryHandler.count=3
- name: Build sample generator
run: mvn -B package --file fhir-examples-generator -Dmaven.wagon.http.retryHandler.count=3
- name: Build benchmark
run: mvn -B package --file fhir-benchmark -Dmaven.wagon.http.retryHandler.count=3
build:
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.labels.*.name, 'ci-skip')"
strategy:
matrix:
java: [ '11' ]
fail-fast: false
steps:
- uses: actions/checkout@v2.3.3
- name: Setup java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Fetch target branch
env:
BASE: ${{ github['base_ref'] }}
run: git fetch --no-tags --prune --depth=1 origin +refs/heads/${BASE}:refs/remotes/origin/${BASE}
- name: Build tools and samples
run: |
mvn -B install --file fhir-tools --no-transfer-progress -Dmaven.wagon.http.retryHandler.count=3
mvn -B install --file fhir-examples --no-transfer-progress -Dmaven.wagon.http.retryHandler.count=3
- name: Build parent with tests
env:
BASE: origin/${{ github['base_ref'] }}
run: |
mvn -version
model_paths=(
fhir-model
fhir-examples
)
validation_paths=(
fhir-validation
fhir-profile/src/main
fhir-term/src/main
fhir-path/src/main
fhir-model/src/main
fhir-examples
)
search_paths=(
fhir-search
fhir-examples
)
jdbc_paths=(
fhir-persistence-jdbc
fhir-persistence-params
fhir-search/src/main
fhir-persistence/src/main
fhir-persistence-schema/src/main
fhir-examples
)
PROFILES_ARR=(integration condense-json)
if [ -n "$(git --no-pager diff --name-only ${BASE} ${GITHUB_SHA} -- ${model_paths[@]})" ]; then
echo "Changes affect fhir-model, running ALL"
PROFILES_ARR+=(model-all-tests)
else
echo "No changes affect fhir-model, running MINIMAL"
fi
if [ -n "$(git --no-pager diff --name-only ${BASE} ${GITHUB_SHA} -- ${validation_paths[@]})" ]; then
echo "Changes affect fhir-validation, running ALL"
PROFILES_ARR+=(validation-all-tests)
else
echo "No changes affect fhir-validation, running MINIMAL"
fi
if [ -n "$(git --no-pager diff --name-only ${BASE} ${GITHUB_SHA} -- ${search_paths[@]})" ]; then
echo "Changes affect fhir-search, running ALL"
PROFILES_ARR+=(search-all-tests)
else
echo "No changes affect fhir-search, running MINIMAL"
fi
if [ -n "$(git --no-pager diff --name-only ${BASE} ${GITHUB_SHA} -- ${jdbc_paths[@]})" ]; then
echo "Changes affect fhir-persistence-jdbc, running ALL"
PROFILES_ARR+=(jdbc-all-tests)
else
echo "No changes affect fhir-persistence-jdbc, running MINIMAL"
fi
# Convert the PROFILES_ARR array to a comma-delimited string
PROFILES=$(IFS=, ; echo "${PROFILES_ARR[*]}")
echo "Using profiles ${PROFILES}"
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline -f fhir-parent --no-transfer-progress -DexcludeReactor=true -Dmaven.wagon.http.retryHandler.count=3
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:resolve-plugins -f fhir-parent --no-transfer-progress -DexcludeReactor=true -Dmaven.wagon.http.retryHandler.count=3
mvn -B package --file fhir-parent -P "${PROFILES}" --no-transfer-progress -Dmaven.wagon.httpconnectionManager.ttlSeconds=240 -Dmaven.wagon.http.retryHandler.count=3
e2e-tests:
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.labels.*.name, 'ci-skip')"
strategy:
matrix:
java: [ '11' ]
fail-fast: false
steps:
- uses: actions/checkout@v2.3.3
- name: Setup java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Build tools and samples
run: |
mvn -B install --file fhir-tools --no-transfer-progress -Dmaven.wagon.http.retryHandler.count=3
mvn -B install --file fhir-examples --no-transfer-progress -Dmaven.wagon.http.retryHandler.count=3
- name: Build parent without tests
# As the e2e tests are the fastest, opting to put javadoc:javadoc in fhir-parent
# The profile avoids UML diagram creation
run: |
JAVADOC_GOAL=""
if [ "${{ matrix.java }}" = "11" ]
then
JAVADOC_GOAL=" -Pvalidate-javadoc javadoc:javadoc "
fi
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline -f fhir-parent --no-transfer-progress -DexcludeReactor=true -Dmaven.wagon.http.retryHandler.count=3
mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:resolve-plugins -f fhir-parent --no-transfer-progress -DexcludeReactor=true -Dmaven.wagon.http.retryHandler.count=3
mvn -B ${JAVADOC_GOAL} install --file fhir-parent -DskipTests -P include-fhir-igs,integration,condense-json --no-transfer-progress -Dmaven.wagon.httpconnectionManager.ttlSeconds=240 -Dmaven.wagon.http.retryHandler.count=3
- name: free disk space
run: |
# create and remove a 200 MB file to make sure we have the room needed later
dd if=/dev/urandom oflag=direct of=balloon.dat bs=1024k count=200
rm -f balloon.dat
sudo apt clean
docker system prune -f
df -h
- name: Server Integration Tests
env:
# debian-based linux uses C.UTF-8 by default and Derby doesn't like that
LC_ALL: en_US.UTF-8
run: |
export WORKSPACE=${GITHUB_WORKSPACE}
build/pre-integration-test.sh
env
mvn -B test -DskipTests=false -f fhir-server-test --no-transfer-progress -Dmaven.wagon.httpconnectionManager.ttlSeconds=240 -Dmaven.wagon.http.retryHandler.count=3
build/post-integration-test.sh
- name: Gather error logs
if: failure()
run: |
it_results=SIT/integration-test-results
rm -fr ${it_results} 2>/dev/null
mkdir -p ${it_results}/server-logs
mkdir -p ${it_results}/fhir-server-test
cp pre-it-logs.zip ${it_results}/
echo "Gathering post-test server logs..."
cp -r SIT/wlp/usr/servers/defaultServer/logs ${it_results}/server-logs
echo "Gathering integration test output"
cp -r ${GITHUB_WORKSPACE}/fhir-server-test/target/surefire-reports/* ${it_results}/fhir-server-test || true
- name: Upload logs
if: always()
uses: actions/upload-artifact@v2.2.0
with:
name: integration-test-results-${{ matrix.java }}
path: SIT/integration-test-results
concurrency:
group: build-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true