Skip to content

Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows #255

Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows

Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows #255

name: Test libcloudph++
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build_CUDA:
runs-on: ubuntu-20.04
strategy:
matrix:
name: ["CUDA"]
build_type: ["Debug", "RelWithDebInfoPortable"]
include:
- name: "CUDA"
disable_cuda: false
# not enough RAM to compile Debug CUDA on 4 threads
threads: 1
steps:
- uses: actions/checkout@v2
- name: build libcloudph++
uses: igfuw/libcloudphxx_build@v0.3
with:
disable_cuda: ${{matrix.disable_cuda}}
build_type: ${{matrix.build_type}}
threads: ${{matrix.threads}}
path: ${{ github.workspace }}
build:
runs-on: ubuntu-20.04
strategy:
matrix:
name: ["no_CUDA"]
build_type: ["Debug", "RelWithDebInfoPortable"]
mpi: ["none", "mvapich2"]
#mpi: ["none"]
include:
- name: "no_CUDA"
disable_cuda: true
threads: 4
- mpi: "none"
tag: "ubuntu_20_04_cuda_11_4"
cxx: "g++"
- mpi: "mvapich2"
tag: "ubuntu_20_04_cuda_11_4_mvapich2"
cxx: "mpic++"
steps:
- uses: actions/checkout@v2
- name: build libcloudph++
uses: igfuw/libcloudphxx_build@v0.3
with:
disable_cuda: ${{matrix.disable_cuda}}
build_type: ${{matrix.build_type}}
threads: ${{matrix.threads}}
path: ${{ github.workspace }}
install_prefix: ${{ github.workspace }}/installed
tag: ${{ matrix.tag }}
cxx: ${{ matrix.cxx }}
# tar build dir before upload as artifact to retain permission and case-sensitive names
- name: Compress libcloudph++ build
run: tar -cvf build.tar build
- name: Upload libcloudph++ build
uses: actions/upload-artifact@v2
with:
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar
path: build.tar
# test jobs
unit_test:
needs: build
runs-on: ubuntu-20.04
strategy:
matrix:
build_type: ["RelWithDebInfoPortable", "Debug"]
mpi: ["none", "mvapich2"]
include:
- mpi: "none"
tag: "ubuntu_20_04_cuda_11_4"
- mpi: "mvapich2"
tag: "ubuntu_20_04_cuda_11_4_mvapich2"
steps:
- uses: actions/checkout@v2
- name: Download libcloudph++ build
uses: actions/download-artifact@v4.1.7
with:
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar
- name: Decompress libcloudph++ build
run: tar -xvf build.tar
- name: load UWLCM Singularity image
uses: igfuw/load_UWLCM_singularity_image@v0.1b
with:
path: ${{ github.workspace }}/singularity_images
tag: ${{ matrix.tag }}
- name: Run unit tests
working-directory: ${{github.workspace}}/build
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: OMP_NUM_THREADS=4 singularity exec $SI ctest -C ${{matrix.build_type}} || cat Testing/Temporary/LastTest.log / # "/" intentional! (just to make cat exit with an error code)
kinematic_2D_test:
needs: build
runs-on: ubuntu-20.04
strategy:
matrix:
build_type: ["RelWithDebInfoPortable"]
mpi: ["none"]
steps:
- uses: actions/checkout@v2
- name: Download libcloudph++ build
uses: actions/download-artifact@v4.1.7
with:
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar
- name: Decompress libcloudph++ build
run: tar -xvf build.tar
# Debugging with a ssh session
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
- name: Install libcloudph++
run: sudo cmake --install build
- name: checkout libmpdata++ repo
uses: actions/checkout@v2
with:
repository: igfuw/libmpdataxx
path: libmpdataxx
- name: Install libmpdata++
uses: igfuw/libmpdataxx_install@v0.5
with:
build_type: ${{matrix.build_type}}
threads: 4
path: ${{ github.workspace }}/libmpdataxx/libmpdata++
install_prefix: ${{ github.workspace }}/installed
- name: Configure kinematic_2D CMake
working-directory: ${{github.workspace}}/models/kinematic_2D
run: singularity exec -B ${{ github.workspace }}/installed/ $SI cmake -B build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -Dlibcloudph++_DIR=${{ github.workspace }}/installed/share/libcloudph++ -Dlibmpdata++_DIR=${{ github.workspace }}/installed/share/libmpdata++
- name: Build kinematic_2D
working-directory: ${{github.workspace}}/models/kinematic_2D
run: VERBOSE=1 singularity exec -B ${{ github.workspace }}/installed/ $SI cmake --build build --config ${{matrix.build_type}}
- name: Run kinematic_2D tests
working-directory: ${{github.workspace}}/models/kinematic_2D/build
run: |
singularity exec -B ${{ github.workspace }}/installed/ $SI ctest -VV -R travis # compare icicle results against reference data (done for full simulation for bulk schemes and a couple of steps for lagrangian)
cat Testing/Temporary/LastTest.log
# Debugging with a ssh session on failure
# - name: Setup tmate session
# if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3
parcel_test:
needs: build
# do after kinematic_2D_test, because otherwise we occasionally get "illegal instruction" errors, probably because libcloudphxx is installed simultaneously on the same runner at the same location by two different jobs (?)
# needs: kinematic_2D_test
runs-on: ubuntu-20.04
strategy:
matrix:
build_type: ["RelWithDebInfoPortable", "Debug"]
mpi: ["none"]
include:
- build_type: "RelWithDebInfoPortable"
long_tests: true
debug_tests: false
- build_type: "Debug"
long_tests: false
debug_tests: true
steps:
- uses: actions/checkout@v2
- name: Download libcloudph++ build
uses: actions/download-artifact@v4.1.7
with:
name: libcloud_build_${{matrix.build_type}}_mpi_${{matrix.mpi}}_tar
- name: Decompress libcloudph++ build
run: tar -xvf build.tar
- name: load UWLCM Singularity image
uses: igfuw/load_UWLCM_singularity_image@v0.1b
with:
path: ${{ github.workspace }}/singularity_images
- name: Install libcloudph++
run: sudo cmake --install build
- name: checkout parcel repo
uses: actions/checkout@v2
with:
repository: igfuw/parcel
path: parcel
- run: mkdir parcel/plots/outputs
- name: run parcel unit_test
working-directory: ${{github.workspace}}/parcel
if: ${{matrix.long_tests}}
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI python3 -m pytest -s -v unit_test
#run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed,/usr/lib/python3/dist-packages/Gnuplot $SI python3 -m pytest -v unit_test
- name: run parcel long_test
working-directory: ${{github.workspace}}/parcel
if: ${{matrix.long_tests}}
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI python3 -m pytest -s -v long_test
- name: run parcel unit_test_debug
working-directory: ${{github.workspace}}/parcel
if: ${{matrix.debug_tests}}
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI python3 -m pytest -s -v unit_test_debug
build_and_test_KiD-A:
runs-on: ubuntu-20.04
strategy:
matrix:
name: ["no_CUDA"]
build_type: ["RelWithDebInfoPortable"]
mpi: ["none"]
include:
- name: "no_CUDA"
disable_cuda: true
threads: 4
steps:
- name: Checkout libcloudphxx PR
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: merge with the KiD-A branch
run: |
git config --global user.email "pdziekan@fuw.edu.pl"
git config --global user.name "Piotr Dziekan"
git fetch origin
git merge origin/kida-1d
- run: grep diag_accr include/libcloudph++/lgrngn/particles.hpp
- name: build libcloudph++
uses: igfuw/libcloudphxx_build@v0.3
with:
disable_cuda: ${{matrix.disable_cuda}}
build_type: ${{matrix.build_type}}
threads: ${{matrix.threads}}
path: ${{ github.workspace }}
install_prefix: ${{ github.workspace }}/installed
- name: Install libcloudph++
run: sudo cmake --install build
- name: checkout KiD-libcloud repo
uses: actions/checkout@v2
with:
repository: igfuw/kid-libcloud
path: kid-libcloud
- name: run KiD LWP test
working-directory: ${{github.workspace}}/kid-libcloud
run: PYTHONPATH=${{ github.workspace }}/installed/usr/lib/python3/dist-packages singularity exec -B${{ github.workspace }}/installed $SI bash ./.travis_scripts/lwp_test.sh
call_test_uwlcm_hlpr:
uses: igfuw/UWLCM/.github/workflows/test_uwlcm_hlpr.yml@master
with:
UWLCM_sha: "master"
libcloudphxx_sha: ${{ github.sha }} # merge PR SHA
libmpdataxx_sha: "master"