Coalescing ubuntu actions #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ubuntu | |
on: | |
pull_request: | |
branches: | |
- main | |
- dev | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
builds-and-test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
compiler: [ | |
{name: 'intel', version: '2024.2'}, | |
{name: 'gcc', version: 11} | |
] | |
build-type: ["Debug", "Release"] | |
mpi: ["Yes", "No"] | |
mtln: ["Yes"] | |
hdf: ["Yes"] | |
include: | |
- compiler: {name: 'intel-classic', version: '2021.10'} | |
build-type: "Release" | |
mpi: "No" | |
mtln: "No" | |
hdf: "Yes" | |
- compiler: {name: 'nvidia-hpc', version: '24.5'} | |
build-type: "Release" | |
mpi: "No" | |
mtln: "No" | |
hdf: "No" | |
fail-fast: false | |
name: ${{matrix.compiler.name}}-${{matrix.build-type}}-mpi(${{matrix.mpi}})-mtln(${{matrix.mtln}})-hdf(${{matrix.hdf}}) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup MPI | |
if: matrix.mpi=='Yes' && matrix.compiler.name=='intel' | |
uses: mpi4py/setup-mpi@v1 | |
with: | |
mpi: 'intelmpi' | |
- name: Install required packages | |
if: matrix.compiler.name=='gcc' | |
run: | | |
sudo apt update | |
sudo apt install libhdf5-dev libopenmpi-dev | |
- name: Setup fortran compiler | |
uses: fortran-lang/setup-fortran@v1 | |
id: setup-fortran | |
with: | |
compiler: ${{matrix.compiler.name}} | |
version: ${{matrix.compiler.version}} | |
- name: Build application | |
run: | | |
cmake -S . -B build \ | |
-DCMAKE_BUILD_TYPE=${{matrix.build-type}} \ | |
-DSEMBA_FDTD_ENABLE_MPI=${{matrix.mpi}} \ | |
-DSEMBA_FDTD_ENABLE_HDF=${{matrix.hdf}} \ | |
-DSEMBA_FDTD_ENABLE_MTLN=${{matrix.mtln}} | |
cmake --build build -j | |
- name: Run fdtd unit tests | |
run: | | |
build/bin/fdtd_tests | |
- name: Install python wrapper requirements | |
run: | | |
python -m pip install -r requirements.txt | |
- name: Run all wrapper tests | |
env: | |
SEMBA_FDTD_ENABLE_MTLN: ${{ matrix.mtln }} | |
run: python -m pytest -m 'not mtln' test/ | |