Skip to content

Rebuild documentation #167

Rebuild documentation

Rebuild documentation #167

Workflow file for this run

# All actions have a name that will be displayed in the "Actions" page in GitHub.
name: 'Autotools'
on:
push:
branches:
- 'master'
pull_request:
branches:
- 'master'
jobs:
build:
name: SPRAL/${{ matrix.os }}/${{ matrix.fc }}/${{ matrix.compiler_version }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13]
compiler_version: ['10', '11', '12']
include:
- compiler: gnu
cc: gcc
fc: gfortran
cxx: g++
allow_failure: false
#- os: ubuntu-latest
# compiler: intel-classic
# compiler_version: 2021.9
# cc: icc
# fc: ifort
# cxx: icpc
# allow_failure: true
#- os: macos-13
# compiler: intel-classic
# compiler_version: 2021.9
# cc: icc
# fc: ifort
# cxx: icpc
# allow_failure: true
# - os: ubuntu-latest
# compiler: intel-llvm
# compiler_version: 2023.2
# cc: icx
# fc: ifx
# cxx: icpx
# allow_failure: true
runs-on: ${{ matrix.os }}
env:
# Set environ for OpenMP
OMP_CANCELLATION: true
OMP_PROC_BIND: true
OMP_NUM_THREADS: 4
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# Usually this is always needed
- uses: actions/checkout@v3
- name: Install dependencies on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get install libhwloc-dev libudev-dev libmetis-dev libopenblas-dev
- name: Install dependencies on MacOS
if: matrix.os == 'macos-13'
run: |
brew install automake autoconf hwloc metis openblas
- name: Install GNU C and C++ compilers
if: matrix.compiler == 'gnu'
uses: fortran-lang/setup-fortran@main
with:
compiler: gcc
version: ${{matrix.compiler_version}}
- name: Install classic Intel C and C++ compilers
if: matrix.compiler == 'intel-classic'
uses: fortran-lang/setup-fortran@main
with:
compiler: intel-classic
version: ${{matrix.compiler_version}}
- name: Install nextgen Intel C and C++ compilers
if: matrix.compiler == 'intel-llvm'
uses: fortran-lang/setup-fortran@main
with:
compiler: intel
version: ${{matrix.compiler_version}}
# Uncomment this section to obtain ssh access to VM
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
- name: 'Build'
shell: bash
run: |
./autogen.sh
PENDANTIC=""
if [[ "${{matrix.compiler}}" == "gnu" ]]; then
PENDANTIC="-pedantic"
fi
INTEL=""
if [[ "${{matrix.compiler}}" == "intel-classic" ]]; then
INTEL="-diag-disable=10441"
fi
LIB_CPP="-lstdc++"
if [[ "${{matrix.os}}" == "macos-13" ]] && [[ "${{matrix.compiler}}" == "intel-classic" ]]; then
LIB_CPP="-lc++"
fi
OPENMP="-fopenmp"
WARNING="-Wall"
INC_BLAS=""
LIB_BLAS="-lopenblas"
if [[ "${{matrix.compiler}}" == "intel-classic" ]] || [[ "${{matrix.compiler}}" == "intel-llvm" ]]; then
OPENMP="-qopenmp"
WARNING="-warn all"
LIB_BLAS="-lmkl_rt"
fi
if [[ "${{matrix.os}}" == "macos-13" ]] && [[ "${{matrix.compiler}}" == "gnu" ]]; then
INC_BLAS="-I$(brew --prefix openblas)/include"
LIB_BLAS="-L$(brew --prefix openblas)/lib -lopenblas"
LD_CLASSIC="-Wl,-ld_classic"
fi
LIB_METIS="-lmetis"
if [[ "${{matrix.os}}" == "macos-13" ]]; then
LIB_METIS="-L$(brew --prefix metis)/lib -lmetis"
fi
./configure CC=${{matrix.cc}} \
CXX=${{matrix.cxx}} \
F77=${{matrix.fc}} \
FC=${{matrix.fc}} \
LIBS=${LIB_CPP} \
CFLAGS="-g -O3 -Wall $OPENMP $INTEL ${INC_BLAS}" \
CXXFLAGS="-g -O3 -std=c++17 -Wall $OPENMP $INTEL ${INC_BLAS} ${LD_CLASSIC}" \
FCFLAGS="-g -O3 $WARNING $OPENMP $PENDANTIC ${LD_CLASSIC}" \
--with-blas="${LIB_BLAS}" \
--with-lapack="${LIB_BLAS}" \
--with-metis="${LIB_METIS}"
make
- name: 'Test'
run: |
make check