diff --git a/.github/jobs/Dockerfile.truth b/.github/jobs/Dockerfile.truth new file mode 100644 index 0000000000..6366360e13 --- /dev/null +++ b/.github/jobs/Dockerfile.truth @@ -0,0 +1,17 @@ +FROM centos:7 +MAINTAINER George McCabe + +ENV OUTPUT_DIR /data/output +RUN mkdir -p ${OUTPUT_DIR} + +ARG TRUTH_DIR + +COPY ${TRUTH_DIR} ${OUTPUT_DIR}/ + +ARG TRUTH_DIR + +# Define the volume mount point +VOLUME ${OUTPUT_DIR}/${TRUTH_DIR} + +USER root +CMD ["true"] \ No newline at end of file diff --git a/.github/jobs/create_docker_truth.sh b/.github/jobs/create_docker_truth.sh new file mode 100755 index 0000000000..0f69bbfd2e --- /dev/null +++ b/.github/jobs/create_docker_truth.sh @@ -0,0 +1,10 @@ +#! /bin/bash + +source ${GITHUB_WORKSPACE}/.github/jobs/bash_functions.sh + +image_name=dtcenter/met-data-output:${TRUTH_DATA_VERSION} + +time_command docker build -t ${image_name} \ + --build-arg TRUTH_DIR=met_test_truth \ + -f ${GITHUB_WORKSPACE}/.github/jobs/Dockerfile.truth \ + ${RUNNER_WORKSPACE} diff --git a/.github/workflows/pr_unit_tests.yml b/.github/workflows/pr_unit_tests.yml index 74cb5e8b84..c67bdb41d5 100644 --- a/.github/workflows/pr_unit_tests.yml +++ b/.github/workflows/pr_unit_tests.yml @@ -320,3 +320,26 @@ jobs: name: logs path: ${{ runner.workspace }}/logs if-no-files-found: ignore + + update_truth: + name: Update Truth Data + runs-on: ubuntu-latest + needs: [job_control, unit_tests_1b, unit_tests_2b, unit_tests_3a] + if: ${{ needs.job_control.outputs.run_update_truth == 'true' }} + steps: + - uses: actions/checkout@v2 + + - name: Download data from previous jobs + uses: actions/download-artifact@v2 + + - name: Copy test output into single directory + run: | + mkdir ${RUNNER_WORKSPACE}/met_test_truth + cp -r unit_tests_*/* ${RUNNER_WORKSPACE}/met_test_truth/ + + - name: Create Docker Data Volume + run: .github/jobs/create_docker_truth.sh + env: + TRUTH_DATA_VERSION: develop + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}