Skip to content

builds-and-tests

builds-and-tests #216

name: Builds and Tests
run-name: builds-and-tests
on:
push:
branches:
- master
- release
- next
pull_request:
workflow_dispatch:
jobs:
builds-and-tests:
strategy:
matrix:
os: [ubuntu-latest, macos-12, macos-13]
mode: [real]
target: [dbg]
include:
- os: ubuntu-latest
deployment: ''
- os: macos-12
deployment: '12.7'
- os: macos-13
deployment: '13.6'
name: ${{ matrix.os }}-${{ matrix.mode }}-${{ matrix.target }}
runs-on: ${{ matrix.os }}
env:
CONFIG: ${{ matrix.os }}-${{ matrix.mode }}-${{ matrix.target }}
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.deployment }}
CMAKE_OSX_DEPLOYMENT_TARGET: ${{ matrix.deployment }}
HOMEBREW_NO_INSTALL_CLEANUP: 1
steps:
# Print runner info to console
- name: Print runner info
run: |
echo "This job was triggered by a ${{ github.event_name }} event."
echo "This job is running on a ${{ runner.os }} server hosted by GitHub."
echo "The repository name is ${{ github.repository }}."
echo "The branch name is ${{ github.ref }}."
# Interrupt workflow already running on the same branch
# - name: Cancel previous runs
# uses: styfle/cancel-workflow-action@0.12.1
# with:
# access_token: ${{ github.token }}
# Check out hp3d repository
- name: Check out hp3d repository
uses: actions/checkout@v4
# List files in the repository
- name: List files in the repository
run: ls ${{ github.workspace }}
# Symlink gfortran (MacOS)
- name: Symlink gfortran (MacOS)
if: runner.os == 'macOS'
run: |
sudo ln -s /usr/local/bin/gfortran-13 /usr/local/bin/gfortran
gfortran --version
# Get Bison and Flex (MacOS)
- name: Get Bison and Flex (MacOS)
if: runner.os == 'macOS'
run: |
brew install bison flex
sudo ln -s /usr/local/opt/bison/bin/bison /usr/local/bin/bison
sudo ln -s /usr/local/opt/flex/bin/flex /usr/local/bin/flex
# Get MPI (MacOS)
- name: Get MPI (MacOS)
if: runner.os == 'macOS'
run: brew install open-mpi
# Get MPI (Linux)
- name: Get MPI (Linux)
if: runner.os == 'Linux'
run: sudo apt-get install mpich
# Check MPI
- name: Check MPI
run: |
mpicc --version
mpicxx --version
mpif90 --version
mpirun --version
# # Build PETSc
# - name: Build PETSc
# run: |
# echo "Getting latest PETSc release version"
# git clone -b release https://gitlab.com/petsc/petsc.git petsc
# echo "Configuring PETSc"
# cd petsc
# ./configure \
# --with-cc=mpicc --COPTFLAGS="-g -O" \
# --with-cxx=mpicxx --CXXOPTFLAGS="-g -O" \
# --with-fc=mpif90 --FOPTFLAGS="-g -O" \
# --with-mpiexec=mpirun \
# --download-scalapack=yes \
# --download-fblaslapack=yes \
# --download-mumps=yes \
# --download-metis=yes \
# --download-parmetis=yes \
# --download-ptscotch=yes \
# --download-zoltan=yes \
# --download-hdf5=yes \
# --with-hdf5-fortran-bindings=1 \
# --with-shared-libraries=0 \
# --with-debugging=0 \
# --with-scalar-type=${{ matrix.mode }} \
# --PETSC_ARCH=arch-$CONFIG
# echo "Building PETSc"
# make -j
# echo "Checking PETSc build"
# make check
# # Build hp3D (MPI F90)
# - name: Build hp3D (MPI F90)
# run: |
# export HP3D_USE_MPI_F08=0
# echo "Configuring hp3D"
# cd trunk
# cp m_options_files/workflows/m_options_$CONFIG ./m_options
# echo "Building hp3D"
# make
# echo "Checking hp3D build"
# make check
# # Run hp3D tests (MPI F90)
# - name: Run hp3D tests (MPI F90)
# run: |
# export HP3D_USE_MPI_F08=0
# echo "Running hp3D tests"
# cd trunk
# make test
# # Build hp3D problems (MPI F90)
# - name: Build hp3D problems (MPI F90)
# run: |
# export HP3D_USE_MPI_F08=0
# echo "Building hp3D problems"
# cd trunk
# make problems
# # Clean hp3D directory
# - name: Clean hp3D directory
# run: |
# echo "Cleaning hp3D directory"
# cd trunk
# make clean
# # Build hp3D (MPI F08)
# - name: Build hp3D (MPI F08)
# run: |
# export HP3D_USE_MPI_F08=1
# echo "Configuring hp3D"
# cd trunk
# cp m_options_files/workflows/m_options_$CONFIG ./m_options
# echo "Building hp3D"
# make
# echo "Checking hp3D build"
# make check
# # Run hp3D tests (MPI F08)
# - name: Run hp3D tests (MPI F08)
# run: |
# export HP3D_USE_MPI_F08=1
# echo "Running hp3D tests"
# cd trunk
# make test
# # Build hp3D problems (MPI F08)
# - name: Build hp3D problems (MPI F08)
# run: |
# export HP3D_USE_MPI_F08=1
# echo "Building hp3D problems"
# cd trunk
# make problems
# Report job status
- name: Report job status
run: echo "This job's status is ${{ job.status }}."