Skip to content

Adapt to interface changes in Fortuno #72

Adapt to interface changes in Fortuno

Adapt to interface changes in Fortuno #72

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
env:
BUILD_DIR_PREFIX: _build
jobs:
gnu-openmpi:
runs-on: ubuntu-latest
steps:
- name: Check-out code
uses: actions/checkout@v4
- name: Setup GNU compiler
uses: fortran-lang/setup-fortran@v1
with:
compiler: gcc
version: 13
- name: Setup OpenMPI
run: |
sudo apt-get update
sudo apt-get install -y openmpi-common openmpi-bin libopenmpi-dev
- name: Setup GNU/OpenMPI environment
run: |
echo "FC=${{ env.FC }}" >> ${GITHUB_ENV}
echo "FPM_FC=${{ env.FC }}" >> ${GITHUB_ENV}
- name: Setup build tools
run: |
pip install cookiecutter cmake meson ninja fpm
- name: Test CMake serial
run: |
./test/runners/test.cmake-serial.sh ${BUILD_DIR_PREFIX}_cmake_serial
# # CMake can not detect OpenMPI on Ubuntu 22.04 due to broken CMake export file
# - name: Test CMake MPI
# run: |
# ./test/runners/test.cmake-mpi.sh ${BUILD_DIR_PREFIX}_cmake_mpi
- name: Test Fpm serial
run: |
./test/runners/test.fpm-serial.sh ${BUILD_DIR_PREFIX}_fpm_serial
- name: Test Fpm MPI
run: |
./test/runners/test.fpm-mpi.sh ${BUILD_DIR_PREFIX}_fpm_mpi
- name: Test Meson serial
run: |
./test/runners/test.meson-serial.sh ${BUILD_DIR_PREFIX}_meson_serial
- name: Test Meson MPI
run: |
./test/runners/test.meson-serial.sh ${BUILD_DIR_PREFIX}_meson_mpi
intel-impi:
runs-on: ubuntu-latest
steps:
- name: Check-out code
uses: actions/checkout@v4
- name: Setup Intel/IntelMPI toolchain
uses: rscohn2/setup-oneapi@v0
with:
components: |
ifx
impi
- name: Setup Intel/IntelMPI environment
run: |
source /opt/intel/oneapi/setvars.sh
printenv >> ${GITHUB_ENV}
echo "FC=ifx" >> ${GITHUB_ENV}
echo "FPM_FC=ifx" >> ${GITHUB_ENV}
- name: Setup build tools
run: |
pip install cookiecutter cmake meson ninja fpm
- name: Test CMake serial
run: |
./test/runners/test.cmake-serial.sh ${BUILD_DIR_PREFIX}_cmake_serial
- name: Test CMake MPI
run: |
./test/runners/test.cmake-mpi.sh ${BUILD_DIR_PREFIX}_cmake_mpi
- name: Test CMake coarray
run: >
FFLAGS_COARRAY="-coarray"
LDFLAGS_COARRAY="-coarray"
./test/runners/test.cmake-coarray.sh ${BUILD_DIR_PREFIX}_cmake_coarray
- name: Test Fpm serial
run: |
./test/runners/test.fpm-serial.sh ${BUILD_DIR_PREFIX}_fpm_serial
- name: Test Fpm MPI
# Workaround for IntelMPI: FPM uses compiler flags (-standard-semantics) which makes
# compiled binary incompatible with IntelMPI. Overriding with some dummy flags.
run: |
FPM_FFLAGS="-stand f18" ./test/runners/test.fpm-mpi.sh ${BUILD_DIR_PREFIX}_fpm_mpi
- name: Test Fpm coarray
run: >
FPM_FFLAGS="-coarray"
FPM_LDFLAGS="-coarray"
./test/runners/test.fpm-coarray.sh ${BUILD_DIR_PREFIX}_fpm_coarray
- name: Test Meson serial
run: |
./test/runners/test.meson-serial.sh ${BUILD_DIR_PREFIX}_meson_serial
# # Meson can not detect IntelMPI properly
# - name: Test Meson MPI
# run: |
# ./test/runners/test.meson-mpi.sh ${BUILD_DIR_PREFIX}_meson_mpi
- name: Test Meson coarray
run: >
FFLAGS_COARRAY="-coarray"
LDFLAGS_COARRAY="-coarray"
./test/runners/test.meson-coarray.sh ${BUILD_DIR_PREFIX}_meson_coarray