Skip to content

Automated Regression Test Workflow #224

Automated Regression Test Workflow

Automated Regression Test Workflow #224

name: Automated Regression Test Workflow
on:
# Run the tests at 00:15 UTC on Mondays and Thursdays
schedule:
- cron: '15 0 * * 1,4'
# Allow this event to be triggered in the GitHub ui
workflow_dispatch:
jobs:
test-matrix:
strategy:
fail-fast: false
matrix:
arch: [ { runson: ubuntu-latest, id: -amd64 } ]
#arch: [ { runson: ARM64, id: -arm64 }, { runson: ubuntu-latest, id: -amd64 } ]
compiler: [ { id: -gcc }, { id: -clang } ]
indices: [ { index64bit: 0, id: "" }, { index64bit: 1, id: "-index64" } ]
petscConfig: [ arch-ablate-opt ]
tensorFlowConfig: [ "", "enabled_tf" ]
runs-on: ${{ matrix.arch.runson }}
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- uses: actions/checkout@v4
- name: Building tests
run: |
ABLATE_DEPENDENCY_IMAGE=ghcr.io/ubchrest/ablate/ablate-dependencies${{matrix.compiler.id}}${{matrix.indices.id}}:latest
docker buildx build .\
--file DockerTestFile \
--tag framework-test-image-${{matrix.tensorFlowConfig}}-${{ matrix.petscConfig }}${{matrix.compiler.id}}${{matrix.indices.id}} \
--build-arg PETSC_BUILD_ARCH='${{ matrix.petscConfig }}' \
--build-arg ENABLE_TENSOR_FLOW='${{ matrix.tensorFlowConfig }}' \
--build-arg ABLATE_DEPENDENCY_IMAGE=$ABLATE_DEPENDENCY_IMAGE \
--load
- name: Run all tests
run: docker run --rm framework-test-image-${{matrix.tensorFlowConfig}}-${{ matrix.petscConfig }}${{matrix.compiler.id}}${{matrix.indices.id}} ctest --preset=pipeline-testing-all
test:
runs-on: ubuntu-latest
needs: test-matrix
if: ${{ always() }}
steps:
- name: Check on failures
if: needs.test-matrix.result != 'success'
run: |
echo Tests unsuccessful!
exit 1
- run: echo All tests Successful!