feat: non-linear fluxes #181
Workflow file for this run
This file contains 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: samurai CI | |
on: [pull_request] | |
jobs: | |
# | |
# Check samurai with pre-commit | |
# | |
######################################################### | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v3 | |
- uses: pre-commit/action@v3.0.0 | |
# | |
# Check samurai with cppcheck | |
# | |
######################################################### | |
cppcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/ccache | |
~/micromamba-root/envs/samurai-env | |
key: cppcheck | |
- name: Mamba and samurai env installation | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: conda/environment.yml | |
environment-name: samurai-env | |
cache-environment: true | |
- name: cppcheck installation | |
shell: bash -l {0} | |
run: | | |
conda install -y cppcheck cxx-compiler | |
pip install compdb | |
- name: Configure | |
shell: bash -l {0} | |
run: | | |
cmake . -Bbuild -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_DEMOS=ON | |
compdb -p build list > compile_commands.json | |
- name: Run cppcheck on samurai | |
shell: bash -l {0} | |
run: | | |
cppcheck --enable=all -q --project=compile_commands.json --suppressions-list=.cppcheck --inline-suppr 2> cppcheck_err.txt | |
- name: Check for errors | |
run: | | |
if [[ -s cppcheck_err.txt ]]; | |
then | |
cat cppcheck_err.txt | |
exit -1 | |
fi | |
# | |
# Check linux build with mamba environment | |
# | |
######################################################### | |
linux-mamba: | |
needs: [pre-commit, cppcheck] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
include: | |
- cpp-version: gcc-9 | |
compiler: "gcc" | |
package: "gcc-9 g++-9" | |
cc: "gcc-9" | |
cxx: "g++-9" | |
- cpp-version: gcc-10 | |
compiler: "gcc" | |
package: "gcc-10 g++-10" | |
cc: "gcc-10" | |
cxx: "g++-10" | |
- cpp-version: gcc-11 | |
compiler: "gcc" | |
package: "gcc-11 g++-11" | |
cc: "gcc-11" | |
cxx: "g++-11" | |
- cpp-version: gcc-12 | |
compiler: "gcc" | |
package: "gcc-12 g++-12" | |
cc: "gcc-12" | |
cxx: "g++-12" | |
- cpp-version: clang-11 | |
compiler: "clang" | |
package: "clang-11" | |
cc: "clang-11" | |
cxx: "clang++-11" | |
- cpp-version: clang-12 | |
compiler: "clang" | |
package: "clang-12" | |
cc: "clang-12" | |
cxx: "clang++-12" | |
- cpp-version: clang-13 | |
compiler: "clang" | |
package: "clang-13" | |
cc: "clang-13" | |
cxx: "clang++-13" | |
- cpp-version: clang-14 | |
compiler: "clang" | |
package: "clang-14" | |
cc: "clang-14" | |
cxx: "clang++-14" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/ccache | |
~/micromamba-root/envs/samurai-env | |
key: linux-${{ matrix.cpp-version }} | |
restore-keys: | | |
linux-${{ matrix.cpp-version }} | |
- name: Compiler and dev tools installation | |
run: | | |
sudo apt update | |
sudo apt install ${{ matrix.package }} | |
# - name: Information about ccache | |
# run: | | |
# ccache -s -v | |
- name: Mamba and samurai env installation | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: conda/environment.yml | |
environment-name: samurai-env | |
cache-environment: true | |
- name: Petsc installation | |
shell: bash -l {0} | |
run: | | |
conda install -y petsc=3.18 pkg-config | |
- name: Conda informations | |
shell: bash -l {0} | |
run: | | |
conda info | |
conda list | |
- name: Configure | |
shell: bash -l {0} | |
run: | | |
export LDFLAGS="${LDFLAGS} -L$CONDA_PREFIX/lib" | |
CC=${{ matrix.cc }} CXX=${{ matrix.cxx }} cmake \ | |
. \ | |
-Bbuild \ | |
-GNinja \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DBUILD_DEMOS=ON \ | |
-DBUILD_TESTS=ON | |
- name: Build | |
shell: bash -l {0} | |
run: | | |
cmake --build build --target all | |
- name: Test with googletest | |
shell: bash -l {0} | |
run: | | |
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$LD_LIBRARY_PATH" | |
cd build | |
./test/test_samurai_lib | |
- name: Test with pytest | |
shell: bash -l {0} | |
run: | | |
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$LD_LIBRARY_PATH" | |
cd test | |
pytest -v -s --h5diff | |
macos-mamba: | |
needs: [pre-commit, cppcheck] | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Mamba and samurai env installation | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: conda/environment.yml | |
environment-name: samurai-env | |
cache-environment: true | |
# - name: Petsc installation | |
# shell: bash -l {0} | |
# run: | | |
# micromamba install -y petsc=3.18 pkg-config | |
- name: micromamba informations | |
shell: bash -l {0} | |
run: | | |
micromamba info | |
micromamba list | |
- name: Configure | |
shell: bash -l {0} | |
run: | | |
cmake \ | |
. \ | |
-Bbuild \ | |
-GNinja \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DBUILD_DEMOS=ON \ | |
-DBUILD_TESTS=ON | |
- name: Build | |
shell: bash -l {0} | |
run: | | |
cmake --build ./build --config Release | |
- name: Run tests | |
shell: bash -l {0} | |
run: | | |
./build/test/test_samurai_lib | |
cd test; pytest --h5diff |