Skip to content

build: Add ignore rules for IDE-specific files and directories #55

build: Add ignore rules for IDE-specific files and directories

build: Add ignore rules for IDE-specific files and directories #55

Workflow file for this run

name: scopi CI
on: [pull_request]
jobs:
#
# Check scopi with pre-commit
#
#########################################################
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: pre-commit/[email protected]
#
# Check scopi with cppcheck
#
#########################################################
cppcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cache/ccache
~/micromamba/envs/scopi-env
key: cppcheck
- name: Mamba and scopi env installation
uses: mamba-org/setup-micromamba@v1
with:
environment-file: conda/environment.yml
environment-name: scopi-env
cache-environment: true
- name: cppcheck installation
shell: bash -el {0}
run: |
conda install -y cppcheck cxx-compiler
- name: Configure
shell: bash -el {0}
run: |
cmake . -Bbuild -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON
- name: Run cppcheck on scopi
shell: bash -el {0}
run: |
cppcheck --enable=all -q --project=./build/compile_commands.json --suppressions-list=.cppcheck --library=test/doctest.cfg --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"
# gcc-10 need to be fixed
# - 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"
- cpp-version: clang-15
compiler: "clang"
package: "clang-15"
cc: "clang-15"
cxx: "clang++-15"
steps:
- uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cache/ccache
~/micromamba-root/envs/scopi-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 scopi env installation
uses: mamba-org/setup-micromamba@v1
with:
environment-file: conda/environment.yml
environment-name: scopi-env
cache-environment: true
- 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_EXAMPLES=ON \
-DBUILD_TESTS=ON
- name: Build
shell: bash -l {0}
run: |
cmake --build build --target all --parallel 4
- name: Run tests
shell: bash -l {0}
run: |
# export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$LD_LIBRARY_PATH"
cd build
./test/test_scopi
macos-mamba:
needs: [pre-commit, cppcheck]
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Mamba and scopi env installation
uses: mamba-org/setup-micromamba@v1
with:
environment-file: conda/environment.yml
environment-name: scopi-env
cache-environment: true
- name: Installl cxx compiler
shell: bash -l {0}
run: |
micromamba install -y cxx-compiler
- 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_EXAMPLES=ON \
-DBUILD_TESTS=ON
- name: Build
shell: bash -l {0}
run: |
cmake --build ./build --config Release --parallel 3
- name: Run tests
shell: bash -l {0}
run: |
cd build
./test/test_scopi