Adapt to interface changes in Fortuno #72
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: 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 |