Skip to content

Commit

Permalink
ci
Browse files Browse the repository at this point in the history
  • Loading branch information
sbryngelson committed Jan 5, 2024
1 parent 554d68b commit 98ba829
Showing 1 changed file with 137 additions and 137 deletions.
274 changes: 137 additions & 137 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,140 +1,140 @@
# name: 'Test Suite'

# on:
# push:
# paths:
# - '**.f90'
# - '**.fpp'
# - '**.py'
# - '**.yml'
# - 'mfc.sh'
# - 'golden.txt'
# - 'CMakeLists.txt'
# - 'requirements.txt'

# pull_request:

# workflow_dispatch:
name: 'Test Suite'

on:
push:
paths:
- '**.f90'
- '**.fpp'
- '**.py'
- '**.yml'
- 'mfc.sh'
- 'golden.txt'
- 'CMakeLists.txt'
- 'requirements.txt'

pull_request:

workflow_dispatch:

# jobs:
# github:
# name: Github
# strategy:
# matrix:
# os: ['ubuntu', 'macos']
# mpi: ['mpi', 'no-mpi']
# debug: ['debug', 'no-debug']
# intel: [true, false]
# exclude:
# - intel: true
# os: macos
# fail-fast: false
# continue-on-error: true
# runs-on: ${{ matrix.os }}-latest
# steps:
# - name: Clone
# uses: actions/checkout@v3

# - name: Setup MacOS
# if: matrix.os == 'macos'
# run: |
# echo "CC=gcc-13" >> $GITHUB_ENV
# echo "CXX=g++-13" >> $GITHUB_ENV
# echo "FC=gfortran-13" >> $GITHUB_ENV
# brew install wget make python make cmake coreutils gcc@13
jobs:
github:
name: Github
strategy:
matrix:
os: ['ubuntu', 'macos']
mpi: ['mpi', 'no-mpi']
debug: ['debug', 'no-debug']
intel: [true, false]
exclude:
- intel: true
os: macos
fail-fast: false
continue-on-error: true
runs-on: ${{ matrix.os }}-latest
steps:
- name: Clone
uses: actions/checkout@v3

- name: Setup MacOS
if: matrix.os == 'macos'
run: |
echo "CC=gcc-13" >> $GITHUB_ENV
echo "CXX=g++-13" >> $GITHUB_ENV
echo "FC=gfortran-13" >> $GITHUB_ENV
brew install wget make python make cmake coreutils gcc@13
# - name: (MacOS) Build OpenMPI
# if: matrix.os == 'macos' && matrix.mpi == 'mpi'
# run: |
# echo "OMPI_FC=gfortran-13" >> $GITHUB_ENV
# echo "OMPI_CXX=g++-13" >> $GITHUB_ENV
# echo "OMPI_MPICC=gcc-13" >> $GITHUB_ENV
# HOMEBREW_MAKE_JOBS=$(nproc) brew install --cc=gcc-13 --verbose --build-from-source open-mpi

# - name: Setup Ubuntu
# if: matrix.os == 'ubuntu' && matrix.intel == false
# run: |
# sudo apt update -y
# sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
- name: (MacOS) Build OpenMPI
if: matrix.os == 'macos' && matrix.mpi == 'mpi'
run: |
echo "OMPI_FC=gfortran-13" >> $GITHUB_ENV
echo "OMPI_CXX=g++-13" >> $GITHUB_ENV
echo "OMPI_MPICC=gcc-13" >> $GITHUB_ENV
HOMEBREW_MAKE_JOBS=$(nproc) brew install --cc=gcc-13 --verbose --build-from-source open-mpi
- name: Setup Ubuntu
if: matrix.os == 'ubuntu' && matrix.intel == false
run: |
sudo apt update -y
sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev
# - name: Setup Ubuntu (Intel)
# if: matrix.os == 'ubuntu' && matrix.intel == true
# run: |
# sudo apt install tar wget make cmake python3 python3-dev
# wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
# sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
# rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
# sudo echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
# sudo apt-get update
# sudo apt-get install -y intel-oneapi-common-vars intel-oneapi-compiler-fortran-2022.1.0 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0 intel-oneapi-mkl-2021.4.0 intel-oneapi-mpi-2021.7.1 intel-oneapi-mpi-devel-2021.7.1
# source /opt/intel/oneapi/setvars.sh
# echo "CXX=$(which icpc)" >> $GITHUB_ENV
# echo "CC=$(which icc)" >> $GITHUB_ENV
# echo "FC=$(which ifort)" >> $GITHUB_ENV
# echo "OMPI_FC=$(which ifort)" >> $GITHUB_ENV
# echo "OMPI_CXX=$(which icpc)" >> $GITHUB_ENV
# echo "OMPI_MPICC=$(which icc)" >> $GITHUB_ENV
# echo "MPI_HOME=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV
# echo "I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV

# - name: Build
# run: |
# if [ '${{ matrix.intel }}' == 'true' ]; then source /opt/intel/oneapi/setvars.sh; fi
# /bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }}

# - name: Test
# run: |
# if [ '${{ matrix.intel }}' == 'true' ]; then source /opt/intel/oneapi/setvars.sh; fi
# /bin/bash mfc.sh test -j $(nproc) $OPT1 $OPT2
# env:
# OPT1: ${{ matrix.mpi == 'mpi' && '--test-all' || '' }}
# OPT2: ${{ matrix.debug == 'debug' && '-% 20' || '' }}

# - name: Ensure empty diff
# run: git diff --exit-code tests/

# docker:
# name: Github | Docker
# runs-on: ubuntu-latest
# steps:
# - name: Clone
# uses: actions/checkout@v3

# - name: Test
# run: sudo ./mfc.sh docker ./mfc.sh test -j $(nproc) -a

# - name: Ensure empty diff
# run: git diff --exit-code tests/

# self:
# name: Georgia Tech | Phoenix (NVHPC)
# if: github.repository == 'MFlowCode/MFC'
# continue-on-error: true
# strategy:
# matrix:
# device: ['cpu', 'gpu']
# runs-on:
# group: phoenix
# labels: self-hosted
# steps:
# - name: Clone
# uses: actions/checkout@v3

# - name: Build
# run: |
# . ./mfc.sh load -c p -m gpu
# ./mfc.sh build -j 2 $(if [ '${{ matrix.device }}' == 'gpu' ]; then echo '--gpu'; fi)

# - name: Test
# run: |
# . ./mfc.sh load -c p -m gpu
# mv misc/run-phoenix-release-${{ matrix.device }}.sh ./
# sbatch run-phoenix-release-${{ matrix.device }}.sh

# - name: Ensure empty diff
# run: exit $(git status --porcelain tests/ | wc -l)

# - name: Print
# if: always()
# run: |
# cat test.out
- name: Setup Ubuntu (Intel)
if: matrix.os == 'ubuntu' && matrix.intel == true
run: |
sudo apt install tar wget make cmake python3 python3-dev
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install -y intel-oneapi-common-vars intel-oneapi-compiler-fortran-2022.1.0 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0 intel-oneapi-mkl-2021.4.0 intel-oneapi-mpi-2021.7.1 intel-oneapi-mpi-devel-2021.7.1
source /opt/intel/oneapi/setvars.sh
echo "CXX=$(which icpc)" >> $GITHUB_ENV
echo "CC=$(which icc)" >> $GITHUB_ENV
echo "FC=$(which ifort)" >> $GITHUB_ENV
echo "OMPI_FC=$(which ifort)" >> $GITHUB_ENV
echo "OMPI_CXX=$(which icpc)" >> $GITHUB_ENV
echo "OMPI_MPICC=$(which icc)" >> $GITHUB_ENV
echo "MPI_HOME=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV
echo "I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV
- name: Build
run: |
if [ '${{ matrix.intel }}' == 'true' ]; then source /opt/intel/oneapi/setvars.sh; fi
/bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }}
- name: Test
run: |
if [ '${{ matrix.intel }}' == 'true' ]; then source /opt/intel/oneapi/setvars.sh; fi
/bin/bash mfc.sh test -j $(nproc) $OPT1 $OPT2
env:
OPT1: ${{ matrix.mpi == 'mpi' && '--test-all' || '' }}
OPT2: ${{ matrix.debug == 'debug' && '-% 20' || '' }}

- name: Ensure empty diff
run: git diff --exit-code tests/

docker:
name: Github | Docker
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v3

- name: Test
run: sudo ./mfc.sh docker ./mfc.sh test -j $(nproc) -a

- name: Ensure empty diff
run: git diff --exit-code tests/

self:
name: Georgia Tech | Phoenix (NVHPC)
if: github.repository == 'MFlowCode/MFC'
continue-on-error: true
strategy:
matrix:
device: ['cpu', 'gpu']
runs-on:
group: phoenix
labels: self-hosted
steps:
- name: Clone
uses: actions/checkout@v3

- name: Build
run: |
. ./mfc.sh load -c p -m gpu
./mfc.sh build -j 2 $(if [ '${{ matrix.device }}' == 'gpu' ]; then echo '--gpu'; fi)
- name: Test
run: |
. ./mfc.sh load -c p -m gpu
mv misc/run-phoenix-release-${{ matrix.device }}.sh ./
sbatch run-phoenix-release-${{ matrix.device }}.sh
- name: Ensure empty diff
run: exit $(git status --porcelain tests/ | wc -l)

- name: Print
if: always()
run: |
cat test.out

0 comments on commit 98ba829

Please sign in to comment.