Fixes from AmberTools 2025 Integration #272
Workflow file for this run
This file contains hidden or 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: 'Build and Test QUICK MPI Version' | |
defaults: | |
run: | |
shell: bash | |
on: | |
push: | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
jobs: | |
build-and-test-mpi-legacy-configure-make: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: 'ubuntu-22.04' | |
compiler-type: 'gnu' | |
mpi-type: 'OpenMPI' | |
compiler-version: '10' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-10 g++-10 gfortran-10' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-22.04' | |
compiler-type: 'gnu' | |
mpi-type: 'OpenMPI' | |
compiler-version: '11' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-11 g++-11 gfortran-11' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'gnu' | |
mpi-type: 'OpenMPI' | |
compiler-version: '12' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-12 g++-12 gfortran-12' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'gnu' | |
mpi-type: 'OpenMPI' | |
compiler-version: '13' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-13 g++-13 gfortran-13' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'gnu' | |
mpi-type: 'OpenMPI' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'gnu' | |
mpi-type: 'MPICH' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'mpich libmpich-dev' | |
- os: 'ubuntu-24.04-arm' | |
compiler-type: 'gnu' | |
mpi-type: 'OpenMPI' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04-arm' | |
compiler-type: 'gnu' | |
mpi-type: 'MPICH' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'mpich libmpich-dev' | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.os }} - ${{ matrix.mpi-type }} - Legacy - ${{ matrix.compiler-type }} - ${{ matrix.compiler-version }} | |
steps: | |
- name: 'Checkout Repository' | |
uses: actions/checkout@v4 | |
- name: 'Linux: Install Dependencies for MPI Version' | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install ${{ matrix.compiler-install }} ${{ matrix.mpi-install }} | |
which ${{ matrix.c-compiler }}-${{ matrix.compiler-version }} | |
if [[ ${{ matrix.compiler-type }} == 'gnu' || ${{ matrix.compiler-type }} == 'clang' ]]; then | |
sudo rm /usr/bin/${{ matrix.c-compiler }} | |
sudo ln -s -T ${{ matrix.c-compiler }}-${{ matrix.compiler-version }} /usr/bin/${{ matrix.c-compiler }} | |
sudo rm /usr/bin/${{ matrix.cxx-compiler }} | |
sudo ln -s -T ${{ matrix.cxx-compiler }}-${{ matrix.compiler-version }} /usr/bin/${{ matrix.cxx-compiler }} | |
if [[ ${{ matrix.compiler-type }} == 'gnu' ]]; then | |
sudo rm /usr/bin/${{ matrix.fortran-compiler }} | |
sudo ln -s -T ${{ matrix.fortran-compiler }}-${{ matrix.compiler-version }} /usr/bin/${{ matrix.fortran-compiler }} | |
fi | |
fi | |
- name: 'Linux: Log Softare Environment Configuration' | |
if: runner.os == 'Linux' | |
run: | | |
echo "OS version:" | |
cat /etc/os-release | |
echo | |
echo "Kernel version:" | |
uname -a | |
echo | |
echo "Glibc version:" | |
ldd --version | |
echo | |
echo "Fortran compiler version:" | |
${{ matrix.fortran-compiler }} --version | |
echo | |
echo "MPI version:" | |
mpirun --version | |
- name: 'Setup Environment Variables for Running Tests' | |
run: | | |
echo "QUICK_BASIS=$PWD/install/basis" >> "$GITHUB_ENV" | |
echo "PATH=$PWD/install/bin:$PATH" >> "$GITHUB_ENV" | |
echo "LIBRARY_PATH=$PWD/install/lib/mpi:$LIBRARY_PATH" >> "$GITHUB_ENV" | |
echo "LD_LIBRARY_PATH=$PWD/install/lib/mpi:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" | |
echo "DO_PARALLEL=mpirun -np 2" >> "$GITHUB_ENV" | |
echo "CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
if [[ ${{ matrix.mpi-type }} == 'OpenMPI' ]]; then | |
echo "OMPI_CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "OMPI_CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "OMPI_FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
elif [[ ${{ matrix.mpi-type }} == 'MPICH' ]]; then | |
echo "MPICH_CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "MPICH_CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "MPICH_FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
fi | |
- name: 'Configure MPI Version' | |
run: | | |
./configure --mpi --enablef --shared --verbose --prefix $PWD/install \ | |
${{ matrix.compiler-type }} | |
- name: 'Build and Install MPI Version Using 2 Jobs' | |
run: | | |
make -j2 all install | |
- name: 'Run Tests for MPI Version (Make) Using 2 MPI Processes' | |
run: | | |
make fulltest | |
- name: 'Upload Test Artifacts for MPI Version' | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mpi-legacy-configure-make-tests-${{ matrix.os }}-${{ matrix.compiler-type }}-${{ matrix.compiler-version }}-${{ matrix.mpi-type }} | |
path: ${{ github.workspace }}/install/test/runs/mpi | |
retention-days: 3 | |
compression-level: 6 | |
- name: 'Download Test Artifacts for MPI Version' | |
uses: actions/download-artifact@v4 | |
with: | |
name: mpi-legacy-configure-make-tests-${{ matrix.os }}-${{ matrix.compiler-type }}-${{ matrix.compiler-version }}-${{ matrix.mpi-type }} | |
- name: 'Display Artifacts' | |
run: | | |
ls -R | |
build-and-test-mpi-cmake: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: 'ubuntu-22.04' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '10' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-10 g++-10 gfortran-10' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-22.04' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '11' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-11 g++-11 gfortran-11' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '12' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-12 g++-12 gfortran-12' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '13' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-13 g++-13 gfortran-13' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'GNU' | |
mpi-type: 'MPICH' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'mpich libmpich-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'CLANG' | |
mpi-type: 'OpenMPI' | |
compiler-version: '17' | |
c-compiler: 'clang' | |
cxx-compiler: 'clang++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'clang-17 gfortran' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'CLANG' | |
mpi-type: 'OpenMPI' | |
compiler-version: '18' | |
c-compiler: 'clang' | |
cxx-compiler: 'clang++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'clang-18 gfortran' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'INTELLLVM' | |
mpi-type: 'Intel-MPI' | |
compiler-version: '2024.2.1' | |
c-compiler: 'mpiicx' | |
cxx-compiler: 'mpiicpx' | |
fortran-compiler: 'mpiifx' | |
compiler-install: 'intel-oneapi-compiler-dpcpp-cpp-2024.2 intel-oneapi-compiler-fortran-2024.2 intel-oneapi-mkl-2024.2 intel-oneapi-mkl-devel-2024.2 intel-oneapi-ccl-devel-2021.14' | |
mpi-install: '' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'INTELLLVM' | |
mpi-type: 'Intel-MPI' | |
compiler-version: '2025.0.1' | |
c-compiler: 'mpiicx' | |
cxx-compiler: 'mpiicpx' | |
fortran-compiler: 'mpiifx' | |
compiler-install: 'intel-oneapi-compiler-dpcpp-cpp-2025.0 intel-oneapi-compiler-fortran-2025.0 intel-oneapi-mkl-2025.0 intel-oneapi-mkl-devel-2025.0 intel-oneapi-ccl-devel-2021.14' | |
mpi-install: '' | |
- os: 'ubuntu-24.04' | |
compiler-type: 'PGI' | |
mpi-type: 'OpenMPI' | |
compiler-version: '25.1' | |
c-compiler: 'pgcc' | |
cxx-compiler: 'pgcc++' | |
fortran-compiler: 'pgf90' | |
compiler-install: 'nvhpc-25-1 gfortran' | |
mpi-install: '' | |
- os: 'ubuntu-24.04-arm' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'ubuntu-24.04-arm' | |
compiler-type: 'GNU' | |
mpi-type: 'MPICH' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc-14 g++-14 gfortran-14' | |
mpi-install: 'mpich libmpich-dev' | |
- os: 'ubuntu-24.04-arm' | |
compiler-type: 'CLANG' | |
mpi-type: 'OpenMPI' | |
compiler-version: '18' | |
c-compiler: 'clang' | |
cxx-compiler: 'clang++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'clang-18 gfortran' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'macos-13' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc@14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'macos-13' | |
compiler-type: 'CLANG' | |
mpi-type: 'OpenMPI' | |
compiler-version: '15' | |
fortran-compiler-version: '14' | |
c-compiler: 'clang' | |
cxx-compiler: 'clang++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'llvm@15 gcc@14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'macos-14' | |
compiler-type: 'GNU' | |
mpi-type: 'OpenMPI' | |
compiler-version: '14' | |
c-compiler: 'gcc' | |
cxx-compiler: 'g++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'gcc@14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
- os: 'macos-14' | |
compiler-type: 'CLANG' | |
mpi-type: 'OpenMPI' | |
compiler-version: '15' | |
fortran-compiler-version: '14' | |
c-compiler: 'clang' | |
cxx-compiler: 'clang++' | |
fortran-compiler: 'gfortran' | |
compiler-install: 'llvm@15 gcc@14' | |
mpi-install: 'openmpi-bin openmpi-common libopenmpi-dev' | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.os }} - ${{ matrix.mpi-type }} - CMake - ${{ matrix.compiler-type }} - ${{ matrix.compiler-version }} | |
steps: | |
- name: 'Checkout Repository' | |
uses: actions/checkout@v4 | |
- name: 'Linux: Setup Environment Variables for Building and Running Tests' | |
if: runner.os == 'Linux' | |
run: | | |
echo "QUICK_BASIS=$PWD/install/basis" >> "$GITHUB_ENV" | |
echo "PATH=$PWD/install/bin:$PATH" >> "$GITHUB_ENV" | |
echo "LIBRARY_PATH=$PWD/install/lib:$LIBRARY_PATH" >> "$GITHUB_ENV" | |
echo "LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" | |
echo "DO_PARALLEL=mpirun -np 2" >> "$GITHUB_ENV" | |
echo "CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
if [[ ${{ matrix.mpi-type }} == 'OpenMPI' ]]; then | |
echo "OMPI_CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "OMPI_CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "OMPI_FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
elif [[ ${{ matrix.mpi-type }} == 'MPICH' ]]; then | |
echo "MPICH_CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "MPICH_CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "MPICH_FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
fi | |
if [ ${{ matrix.compiler-type }} == 'PGI' ]; then | |
echo PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }}/compilers/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }}/comm_libs/mpi/bin:$PATH >> "$GITHUB_ENV" | |
echo INCLUDE_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }}/compilers/include:$INCLUDE_PATH >> "$GITHUB_ENV" | |
echo LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }}/compilers/lib:$LIBRARY_PATH >> "$GITHUB_ENV" | |
echo LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }}/compilers/lib:$LD_LIBRARY_PATH >> "$GITHUB_ENV" | |
echo CMAKE_PREFIX_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }}/compilers/:$CMAKE_PREFIX_PATH >> "$GITHUB_ENV" | |
echo "NVHPC=/opt/nvidia/hpc_sdk" >> "$GITHUB_ENV" | |
echo NVHPC_ROOT=/opt/nvidia/hpc_sdk/Linux_x86_64/${{ matrix.compiler-version }} >> "$GITHUB_ENV" | |
fi | |
- name: 'MacOS: Setup Environment Variables for Building and Running Tests' | |
if: runner.os == 'macOS' | |
run: | | |
echo "QUICK_BASIS=$PWD/install/basis" >> "$GITHUB_ENV" | |
echo "PATH=$PWD/install/bin:$PATH" >> "$GITHUB_ENV" | |
echo "LIBRARY_PATH=$PWD/install/lib:$LIBRARY_PATH" >> "$GITHUB_ENV" | |
echo "LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" | |
echo "DO_PARALLEL=mpirun -np 2" >> "$GITHUB_ENV" | |
echo "CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
if [[ ${{ matrix.mpi-type }} == 'OpenMPI' ]]; then | |
echo "OMPI_CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "OMPI_CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "OMPI_FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
elif [[ ${{ matrix.mpi-type }} == 'MPICH' ]]; then | |
echo "MPICH_CC=${{ matrix.c-compiler }}" >> "$GITHUB_ENV" | |
echo "MPICH_CXX=${{ matrix.cxx-compiler }}" >> "$GITHUB_ENV" | |
echo "MPICH_FC=${{ matrix.fortran-compiler }}" >> "$GITHUB_ENV" | |
fi | |
if [[ ${{ matrix.os }} == 'macos-13' ]]; then | |
echo "BREW_COMPILER_PREFIX=/usr/local/bin" >> "$GITHUB_ENV" | |
echo "PATH=/usr/local/bin:$PATH" >> "$GITHUB_ENV" | |
elif [[ ${{ matrix.os }} == 'macos-14' ]]; then | |
echo "BREW_COMPILER_PREFIX=/opt/homebrew/bin" >> "$GITHUB_ENV" | |
echo "PATH=/opt/homebrew/bin:$PATH" >> "$GITHUB_ENV" | |
fi | |
- name: 'Linux: Install Dependencies for MPI Version' | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
if [ ${{ matrix.compiler-type }} == 'INTELLLVM' ]; then | |
sudo apt install -y gpg-agent wget | |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | |
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null | |
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \ | |
| sudo tee /etc/apt/sources.list.d/oneAPI.list | |
sudo apt update | |
elif [ ${{ matrix.compiler-type }} == 'PGI' ]; then | |
sudo apt install -y gpg-agent wget | |
wget -O- https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK \ | |
| gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg > /dev/null | |
echo "deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /" \ | |
| sudo tee /etc/apt/sources.list.d/nvhpc.list | |
sudo apt update | |
fi | |
sudo apt-get -y install ${{ matrix.compiler-install }} ${{ matrix.mpi-install }} cmake | |
if [[ ${{ matrix.compiler-type }} == 'GNU' || ${{ matrix.compiler-type }} == 'CLANG' ]]; then | |
sudo rm /usr/bin/${{ matrix.c-compiler }} | |
sudo ln -s -T ${{ matrix.c-compiler }}-${{ matrix.compiler-version }} /usr/bin/${{ matrix.c-compiler }} | |
sudo rm /usr/bin/${{ matrix.cxx-compiler }} | |
sudo ln -s -T ${{ matrix.cxx-compiler }}-${{ matrix.compiler-version }} /usr/bin/${{ matrix.cxx-compiler }} | |
if [[ ${{ matrix.compiler-type }} == 'GNU' ]]; then | |
sudo rm /usr/bin/${{ matrix.fortran-compiler }} | |
sudo ln -s -T ${{ matrix.fortran-compiler }}-${{ matrix.compiler-version }} /usr/bin/${{ matrix.fortran-compiler }} | |
fi | |
fi | |
- name: 'MacOS: Install Dependencies for Serial Version' | |
if: runner.os == 'macOS' | |
run: | | |
brew install --formula --quiet ${{ matrix.compiler-install }} cmake open-mpi | |
if [[ ${{ matrix.compiler-type }} == 'GNU' || ${{ matrix.compiler-type }} == 'CLANG' ]]; then | |
sudo ln -Fs $BREW_COMPILER_PREFIX/${{ matrix.c-compiler }}-${{ matrix.compiler-version }} \ | |
$BREW_COMPILER_PREFIX/${{ matrix.c-compiler }} | |
sudo ln -Fs $BREW_COMPILER_PREFIX/${{ matrix.cxx-compiler }}-${{ matrix.compiler-version }} \ | |
$BREW_COMPILER_PREFIX/${{ matrix.cxx-compiler }} | |
if [[ ${{ matrix.compiler-type }} == 'GNU' ]]; then | |
sudo ln -Fs $BREW_COMPILER_PREFIX/${{ matrix.fortran-compiler }}-${{ matrix.compiler-version }} \ | |
$BREW_COMPILER_PREFIX/${{ matrix.fortran-compiler }} | |
elif [[ ${{ matrix.compiler-type }} == 'CLANG' ]]; then | |
sudo ln -Fs $BREW_COMPILER_PREFIX/${{ matrix.fortran-compiler }}-${{ matrix.fortran-compiler-version }} \ | |
$BREW_COMPILER_PREFIX/${{ matrix.fortran-compiler }} | |
fi | |
fi | |
- name: 'Linux: Log Softare Environment Configuration' | |
if: runner.os == 'Linux' | |
run: | | |
if [ ${{ matrix.compiler-type }} == 'INTELLLVM' ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
echo "OS version:" | |
cat /etc/os-release | |
echo | |
echo "Kernel version:" | |
uname -a | |
echo | |
echo "Glibc version:" | |
ldd --version | |
echo | |
echo "Fortran compiler version:" | |
${{ matrix.fortran-compiler }} --version | |
echo | |
if [ ${{ matrix.compiler-type }} == 'INTELLLVM' ]; then | |
echo "MKL install directory:" | |
echo "${MKLROOT}" | |
echo | |
fi | |
echo "MPI version:" | |
mpirun --version | |
echo | |
echo "CMake version:" | |
cmake --version | |
- name: 'MacOS: Log Softare Environment Configuration' | |
if: runner.os == 'macOS' | |
run: | | |
echo "OS version:" | |
cat /System/Library/CoreServices/SystemVersion.plist | |
echo | |
echo "Kernel version:" | |
uname -a | |
echo | |
echo "Fortran compiler version:" | |
${{ matrix.fortran-compiler }} --version | |
echo | |
echo "MPI version:" | |
mpirun --version | |
echo | |
echo "CMake version:" | |
cmake --version | |
- name: 'Configure MPI Version' | |
run: | | |
mkdir build | |
cd build | |
if [ ${{ matrix.compiler-type }} == 'INTELLLVM' ]; then | |
source /opt/intel/oneapi/setvars.sh | |
cmake .. -DCOMPILER=${{ matrix.compiler-type }} \ | |
-DMPI=TRUE -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$PWD/../install \ | |
-DMKL_HOME=$MKLROOT -DMKL_MULTI_THREADED=FALSE -DTRUST_SYSTEM_LIBS=TRUE | |
else | |
cmake .. -DCOMPILER=${{ matrix.compiler-type }} \ | |
-DMPI=TRUE -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$PWD/../install | |
fi | |
- name: 'Build and Install MPI Version Using 2 Jobs' | |
run: | | |
if [ ${{ matrix.compiler-type }} == 'INTELLLVM' ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
cd build | |
cmake --build . --parallel 2 --verbose | |
cmake --install . | |
- name: 'Run Tests for MPI Version Using 2 MPI Processes' | |
run: | | |
if [ ${{ matrix.compiler-type }} == 'INTELLLVM' ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
cd install | |
./runtest --mpi --full | |
- name: 'Upload Test Artifacts for MPI Version' | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mpi-cmake-tests-${{ matrix.os }}-${{ matrix.compiler-type }}-${{ matrix.compiler-version }}-${{ matrix.mpi-type }} | |
path: ${{ github.workspace }}/install/test/runs/mpi | |
retention-days: 3 | |
compression-level: 6 | |
- name: 'Download Test Artifacts for MPI Version' | |
uses: actions/download-artifact@v4 | |
with: | |
name: mpi-cmake-tests-${{ matrix.os }}-${{ matrix.compiler-type }}-${{ matrix.compiler-version }}-${{ matrix.mpi-type }} | |
- name: 'Display Artifacts' | |
run: | | |
ls -R |