Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
2eef479
ENH: Attempt to update @jrper CMake build
Patol75 Feb 28, 2022
5adb44f
Update CMakeLists.txt for out-of-source build
angus-g Feb 28, 2022
f5ee36c
Allow h5hut to build as a CMake subproject
angus-g Feb 28, 2022
5d9897e
Add h5hut as CMake dependency
angus-g Feb 28, 2022
1c34038
ENH: Tidy and bring some extra libraries back in
Patol75 Mar 4, 2022
6c9b924
ENH: Fix linker issues
Patol75 Mar 7, 2022
4b4b954
BUG: Fix mistakes highlighted through clean build; adaptivity broken
Patol75 Mar 7, 2022
4f002a3
ENH: Successful CMake build; missing spud and tests
Patol75 Mar 10, 2022
71b893e
ENH: Incorporate python; further progress in incorporating spud sub-d…
Patol75 Mar 12, 2022
93cebcc
ENH: Copy changes from the deal_with_warnings branch and fix any issu…
Patol75 Mar 12, 2022
e142229
ENH: Incorporation of a few unittests; Misc small improvements
Patol75 Mar 13, 2022
5dc8b08
Changes towards out-of-source build; Add all unittests; Fix for diamo…
Patol75 Mar 24, 2022
03ff96e
Include changes from testharness branch; Various changes based on tes…
Patol75 Mar 31, 2022
e6499d8
ENH: Allow build to pass on Docker Jammy image; Still some troubles w…
Patol75 Apr 6, 2022
77b62b0
ENH: Fix testing when building out of source; Trigger CI
Patol75 Apr 11, 2022
76ee610
BUG: Fix distribution in YAML
Patol75 Apr 11, 2022
aa666d6
BUG: Add gmsh; Fix target architecture when using Actions
Patol75 Apr 11, 2022
9833015
BUG: Fix several issues highlighted through CI
Patol75 Apr 11, 2022
f7b413e
BUG: Update dependencies; Enable medium tests
Patol75 Apr 11, 2022
bd50333
BUG: Change gmsh installation; Downgrade architecture for Actions; Fi…
Patol75 Apr 12, 2022
7a7319f
BUG: Add curl
Patol75 Apr 12, 2022
9a5620b
BUG: Further downgrade architecture; Fix report paths
Patol75 Apr 12, 2022
ff8ec7c
BUG: Yet another downgrade
Patol75 Apr 12, 2022
75d59c6
BUG: Update API for VTK ghost cells; Fix all failing vshort tests
Patol75 Apr 28, 2022
c559e87
BUG: Revert unwanted changes
Patol75 Apr 28, 2022
6f92a42
BUG: Build both static and shared spud libraries
Patol75 Apr 29, 2022
6f465dd
BUG: Update spud target dependency
Patol75 Apr 29, 2022
558e74f
BUG: Workaround for libspud...
Patol75 May 1, 2022
699db72
BUG: Various fixes based on test results
Patol75 May 5, 2022
8b56463
BUG: Fix mistake in femtools CMakeLists
Patol75 May 5, 2022
8c710bd
BUG: Attempt to fix Numpy Array API issue
Patol75 May 5, 2022
66523ca
TST: Additional fixes based on CI
Patol75 May 15, 2022
c778a74
BUG: Ensure sequential execution
Patol75 May 15, 2022
91c8a51
TST: Enable long tests; Further test fixing; Added dxdiff
Patol75 Jun 6, 2022
8f289c4
BUG: Add forgotten Python package files
Patol75 Jun 6, 2022
e0a3695
BUG: Forgotten CMake file
Patol75 Jun 6, 2022
441f9d2
ENH: Update argument list of testharness
Patol75 Jun 6, 2022
10ac8cc
BUG: Fix Fluidity directories in testharness
Patol75 Jun 6, 2022
3bd6211
TST: Further test fixing
Patol75 Jun 7, 2022
57b6a44
TST: Add vlong testing; further progress with remaining failing tests.
Patol75 Jun 14, 2022
7b13d11
TST: Another round of test fixing.
Patol75 Jun 15, 2022
283413b
BUG: Ensure Actions lists are made after build.
Patol75 Jun 16, 2022
642d28b
BUG: Create directories to avoid non-existing path.
Patol75 Jun 16, 2022
79bb6e5
BUG: Add another missing directory.
Patol75 Jun 16, 2022
b91168d
BUG: Revert changes and remove check for already existing path within…
Patol75 Jun 16, 2022
9e57790
TST: Further test fixing (mostly vlong)
Patol75 Jun 16, 2022
86ebd14
BUG: Replace < by &lt; in XML
Patol75 Jun 17, 2022
a63c201
TST: Final round of fixing (for now).
Patol75 Jun 18, 2022
c4e2013
TST: Remove some forgotten print calls.
Patol75 Jun 18, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
285 changes: 285 additions & 0 deletions .github/workflows/test_suite.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,285 @@
name: Build and test

on:
push:
branches:
- main
# pull_request:
# branches:
# - main

jobs:

build:
name: Build - ${{ matrix.distribution }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
distribution: [jammy]

steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v3
with:
file: docker/Dockerfile.${{ matrix.distribution }}
push: true
tags: fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}

unit-test:
name: Unit Tests - ${{ matrix.distribution }}
runs-on: ubuntu-latest
needs: build

strategy:
fail-fast: false
matrix:
distribution: [jammy]
output: [unit-tests.xml]

steps:
- name: Run tests
run: |
chmod 777 .
docker pull fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}
docker run -v $PWD:/host fluidity/actions:${{ matrix.distribution }}-${{ github.sha }} \
/bin/bash -c "ninja unittest &&
cp -v ${{ matrix.output }} /host/${{ matrix.distribution }}-${{ matrix.output }}"

- name: Upload test report
uses: actions/upload-artifact@v3
with:
path: ${{ matrix.distribution }}-${{ matrix.output }}
name: xml_outputs

- name: Publish test report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ${{ matrix.distribution }}-${{ matrix.output }}
token: ${{ secrets.GITHUB_TOKEN }}
check_name: JUnit Test Report - Unit Tests - ${{ matrix.distribution }}
fail_on_failure: true

vshort-test:
name: VShort Tests - ${{ matrix.distribution }}
runs-on: ubuntu-latest
needs: build

strategy:
fail-fast: false
matrix:
distribution: [jammy]
output: [vshort-tests.xml]

steps:
- name: Run tests
run: |
chmod 777 .
docker pull fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}
docker run -v $PWD:/host fluidity/actions:${{ matrix.distribution }}-${{ github.sha }} \
/bin/bash -c "ninja vshorttest &&
cp -v ${{ matrix.output }} /host/${{ matrix.distribution }}-${{ matrix.output }}"

- name: Upload test report
uses: actions/upload-artifact@v3
with:
path: ${{ matrix.distribution }}-${{ matrix.output }}
name: xml_outputs

- name: Publish test report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ${{ matrix.distribution }}-${{ matrix.output }}
token: ${{ secrets.GITHUB_TOKEN }}
check_name: JUnit Test Report - VShort Tests - ${{ matrix.distribution }}
fail_on_failure: true

short-test:
name: Short Tests - ${{ matrix.distribution }}
runs-on: ubuntu-latest
needs: build

strategy:
fail-fast: false
matrix:
distribution: [jammy]
output: [short-tests.xml]

steps:
- name: Run tests
run: |
chmod 777 .
docker pull fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}
docker run -v $PWD:/host fluidity/actions:${{ matrix.distribution }}-${{ github.sha }} \
/bin/bash -c "ninja shorttest &&
cp -v ${{ matrix.output }} /host/${{ matrix.distribution }}-${{ matrix.output }}"

- name: Upload test report
uses: actions/upload-artifact@v3
with:
path: ${{ matrix.distribution }}-${{ matrix.output }}
name: xml_outputs

- name: Publish test report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ${{ matrix.distribution }}-${{ matrix.output }}
token: ${{ secrets.GITHUB_TOKEN }}
check_name: JUnit Test Report - Short Tests - ${{ matrix.distribution }}
fail_on_failure: true

get-lists:
name: Generate JSON files that contain tests to be executed
runs-on: ubuntu-latest

outputs:
mediumtest-matrix: ${{ steps.set-matrices.outputs.mediumtest-matrix }}
longtest-matrix: ${{ steps.set-matrices.outputs.longtest-matrix }}
vlongtest-matrix: ${{ steps.set-matrices.outputs.vlongtest-matrix }}

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Generate JSON files
id: set-matrices
run: |
sed -i "s:@CMAKE_SOURCE_DIR@:$PWD:g" tools/testharness.py
sed -i "s:@CMAKE_BINARY_DIR@:${PWD}/build:g" tools/testharness.py

tools/testharness.py -l medium -o fixme --just-list mediumtests.json
tools/testharness.py -l long --just-list longtests.json
tools/testharness.py -l vlong -o fixme longtime --just-list vlongtests.json

echo "::set-output name=mediumtest-matrix::$(echo $(cat mediumtests.json))"
echo "::set-output name=longtest-matrix::$(echo $(cat longtests.json))"
echo "::set-output name=vlongtest-matrix::$(echo $(cat vlongtests.json))"

medium-test:
name: Medium Test - ${{ matrix.distribution }} - ${{ matrix.test-xml }}
runs-on: ubuntu-latest
needs: [build, get-lists]

strategy:
fail-fast: false
matrix:
distribution: [jammy]
test-xml: ${{fromJSON(needs.get-lists.outputs.mediumtest-matrix)}}

steps:
- name: Testing
run: |
chmod 777 .
docker pull fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}
docker run -v $PWD:/host fluidity/actions:${{ matrix.distribution }}-${{ github.sha }} \
/bin/bash -c "bin/testharness -f ${{ matrix.test-xml }} \
-x ${{ matrix.distribution }}-${{ matrix.test-xml }} &&
cp -v ${{ matrix.distribution }}-${{ matrix.test-xml }} /host"

- name: Upload test report
uses: actions/upload-artifact@v3
with:
path: ${{ matrix.distribution }}-${{ matrix.test-xml }}
name: xml_outputs

- name: Publish test report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ${{ matrix.distribution }}-${{ matrix.test-xml }}
token: ${{ secrets.GITHUB_TOKEN }}
check_name: JUnit Test Report - Medium Test - ${{ matrix.distribution }} - ${{ matrix.test-xml }}
fail_on_failure: true

long-test:
name: Long Test - ${{ matrix.distribution }} - ${{ matrix.test-xml }}
runs-on: ubuntu-latest
needs: [build, get-lists]

strategy:
fail-fast: false
matrix:
distribution: [jammy]
test-xml: ${{fromJSON(needs.get-lists.outputs.longtest-matrix)}}

steps:
- name: Testing
run: |
chmod 777 .
docker pull fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}
docker run -v $PWD:/host fluidity/actions:${{ matrix.distribution }}-${{ github.sha }} \
/bin/bash -c "bin/testharness -f ${{ matrix.test-xml }} \
-x ${{ matrix.distribution }}-${{ matrix.test-xml }} &&
cp -v ${{ matrix.distribution }}-${{ matrix.test-xml }} /host"

- name: Upload test report
uses: actions/upload-artifact@v3
with:
path: ${{ matrix.distribution }}-${{ matrix.test-xml }}
name: xml_outputs

- name: Publish test report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ${{ matrix.distribution }}-${{ matrix.test-xml }}
token: ${{ secrets.GITHUB_TOKEN }}
check_name: JUnit Test Report - Long Test - ${{ matrix.distribution }} - ${{ matrix.test-xml }}
fail_on_failure: true

vlong-test:
name: VLong Test - ${{ matrix.distribution }} - ${{ matrix.test-xml }}
runs-on: ubuntu-latest
needs: [build, get-lists]

strategy:
fail-fast: false
matrix:
distribution: [jammy]
test-xml: ${{fromJSON(needs.get-lists.outputs.vlongtest-matrix)}}

steps:
- name: Testing
run: |
chmod 777 .
docker pull fluidity/actions:${{ matrix.distribution }}-${{ github.sha }}
docker run -v $PWD:/host fluidity/actions:${{ matrix.distribution }}-${{ github.sha }} \
/bin/bash -c "bin/testharness -f ${{ matrix.test-xml }} \
-x ${{ matrix.distribution }}-${{ matrix.test-xml }} &&
cp -v ${{ matrix.distribution }}-${{ matrix.test-xml }} /host"

- name: Upload test report
uses: actions/upload-artifact@v3
with:
path: ${{ matrix.distribution }}-${{ matrix.test-xml }}
name: xml_outputs

- name: Publish test report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: ${{ matrix.distribution }}-${{ matrix.test-xml }}
token: ${{ secrets.GITHUB_TOKEN }}
check_name: JUnit Test Report - VLong Test - ${{ matrix.distribution }} - ${{ matrix.test-xml }}
fail_on_failure: true
Loading