Skip to content

Fixes 2

Fixes 2 #14

Workflow file for this run

name: Build application
on: [push, pull_request]
jobs:
ubuntu-gcc-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-12 g++-12
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install libomp-dev
sudo apt-get install python3-pip
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install setuptools cpplint
sudo apt-get install valgrind
- name: Update submodules
run: git submodule update --init --recursive
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}
- name: CMake configure
run: |
mkdir build
cd build
cmake -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STD=ON -D CMAKE_BUILD_TYPE=RELEASE ..
cd ..
env:
CC: gcc-12
CXX: g++-12
- name: Ninja build
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
cd build
ninja
cd ..
env:
CC: gcc-12
CXX: g++-12
- name: Run tests
run: |
export OMP_NUM_THREADS=4
source scripts/run.sh
ubuntu-clang-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install clang-14
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install libomp-dev
sudo apt-get install python3-pip
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install setuptools cpplint
sudo apt-get install valgrind
sudo apt-get remove libstdc++-13-dev
sudo apt-get remove libhwasan0
- name: Update submodules
run: git submodule update --init --recursive
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}
- name: CMake configure
run: |
mkdir build
cd build
cmake -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STD=ON -D CMAKE_BUILD_TYPE=RELEASE ..
cd ..
env:
CC: clang-14
CXX: clang++-14
- name: Ninja build
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
cd build
ninja
cd ..
env:
CC: clang-14
CXX: clang++-14
- name: Run tests
run: |
export OMP_NUM_THREADS=4
source scripts/run.sh
macos-clang-build:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: Setup environment
run: |
rm '/usr/local/bin/2to3' '/usr/local/bin/2to3-3.11' '/usr/local/bin/idle3.11' '/usr/local/bin/idle3'
rm '/usr/local/bin/pydoc3.11' '/usr/local/bin/pydoc3' '/usr/local/bin/python3.11' '/usr/local/bin/python3'
rm '/usr/local/bin/python3.11-config' '/usr/local/bin/python3-config'
brew update-reset
brew install cppcheck ninja
brew install openssl
brew link --force openssl
brew install mpich llvm libomp
brew link --overwrite python@3.10
/usr/local/bin/python3.10 -m pip install --upgrade pip
/usr/local/bin/python3.10 -m pip install setuptools cpplint
- name: Update submodules
run: git submodule update --init --recursive
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}
- name: CMake configure
run: |
export LDFLAGS="$LDFLAGS -L/usr/local/opt/openssl/lib"
export CFLAGS="$CFLAGS -I/usr/local/opt/openssl/include"
export CXXFLAGS="$CXXFLAGS -I/usr/local/opt/openssl/include"
export CPPFLAGS="$CPPFLAGS -I/usr/local/opt/openssl/include"
export PATH="/usr/local/opt/openssl/bin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
mkdir build
cd build
cmake -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -G Ninja -D USE_SEQ=ON -D USE_MPI=OFF -D USE_OMP=ON -D USE_TBB=ON -D USE_STD=ON -D CMAKE_BUILD_TYPE=RELEASE \
-DOpenMP_CXX_FLAGS="-Xclang -fopenmp -I/usr/local/opt/libomp/include" \
-DOpenMP_C_FLAGS="-Xclang -fopenmp -I/usr/local/opt/libomp/include" \
-DOpenMP_CXX_FLAGS="-Xclang -fopenmp -I/usr/local/opt/libomp/include" \
-DOpenMP_C_FLAGS="-Xclang -fopenmp -I/usr/local/opt/libomp/include" \
-DOpenMP_CXX_LIB_NAMES=libomp -DOpenMP_C_LIB_NAMES=libomp \
-DOpenMP_libomp_LIBRARY=/usr/local/opt/libomp/lib/libomp.dylib \
-DCMAKE_SHARED_LINKER_FLAGS="-L/usr/local/opt/libomp/lib -lomp -Wl,-rpath,/usr/local/opt/libomp/lib" ..
- name: Ninja build
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
export LDFLAGS="$LDFLAGS -L/usr/local/opt/openssl/lib"
export CFLAGS="$CFLAGS -I/usr/local/opt/openssl/include"
export CXXFLAGS="$CXXFLAGS -I/usr/local/opt/openssl/include"
export CPPFLAGS="$CPPFLAGS -I/usr/local/opt/openssl/include"
export PATH="/usr/local/opt/openssl/bin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
cd build
ninja
cd ..
- name: Run tests
run: |
export OMP_NUM_THREADS=4
source scripts/run_mac.sh
windows-msvc-build:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v1
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: msmpi
- name: Download dependencies
run: |
choco install openssl
- name: Update submodules
run: git submodule update --init --recursive
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
windows_compile_environment: msvc
- name: CMake configure
shell: bash
run: |
mkdir build
cd build
cmake -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=OFF -D USE_STD=ON -D CMAKE_BUILD_TYPE=RELEASE ..
cd ..
- name: MSBuild
shell: bash
run: |
cd build
cmake --build . --config Release --parallel
cd ..
- name: Run tests
run: |
set OMP_NUM_THREADS=4
scripts/run.bat