build: Add ignore rules for IDE-specific files and directories #55
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: 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 |