Skip to content
This repository was archived by the owner on Jun 24, 2026. It is now read-only.

feat: add subscription options to source file generation for improved… #420

feat: add subscription options to source file generation for improved…

feat: add subscription options to source file generation for improved… #420

Workflow file for this run

name: CMake
on: [push, pull_request]
jobs:
ubuntu-address-undefined-coverage:
runs-on: ubuntu-latest
env:
MONGODB_HOST: localhost
MONGODB_PORT: "27017"
services:
mongo:
image: mongo
ports:
- 27017:27017
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y lcov
wget -O clips_core_source_642.zip https://sourceforge.net/projects/clipsrules/files/CLIPS/6.4.2/clips_core_source_642.zip/download
unzip clips_core_source_642.zip
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r4.1.2/mongo-cxx-driver-r4.1.2.tar.gz
tar -xzf mongo-cxx-driver-r4.1.2.tar.gz
- name: Compile CLIPS
working-directory: clips_core_source_642/core
run: |
make release_cpp
sudo mkdir /usr/local/include/clips
sudo cp *.h /usr/local/include/clips/
sudo cp libclips.a /usr/local/lib/
- name: Compile Mongo C++ driver
working-directory: mongo-cxx-driver-r4.1.2/build
run: |
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF
cmake --build .
sudo cmake --build . --target install
- name: Update library cache
run: |
sudo ldconfig
- name: Configure CMake
run: cmake -B build -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON -DENABLE_UBSAN=ON -DENABLE_COV=ON -DBUILD_MONGODB=ON
- name: Build
run: cmake --build build --config Debug
- name: Test with address sanitizer, undefined behavior sanitizer and coverage
working-directory: build
run: ctest -C Debug --rerun-failed --output-on-failure -T Test -T Coverage
- name: Make coverage report
run: |
lcov --capture --directory build --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info
lcov --list coverage.info
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
ubuntu-memcheck:
runs-on: ubuntu-latest
env:
MONGODB_HOST: localhost
MONGODB_PORT: "27017"
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y valgrind
wget -O clips_core_source_642.zip https://sourceforge.net/projects/clipsrules/files/CLIPS/6.4.2/clips_core_source_642.zip/download
unzip clips_core_source_642.zip
- name: Compile CLIPS
working-directory: clips_core_source_642/core
run: |
make release_cpp
sudo mkdir /usr/local/include/clips
sudo cp *.h /usr/local/include/clips/
sudo cp libclips.a /usr/local/lib/
- name: Update library cache
run: |
sudo ldconfig
- name: Configure CMake
run: cmake -B build -DCMAKE_BUILD_TYPE=Debug
- name: Build
run: cmake --build build --config Debug
- name: Test with memory checker
working-directory: build
run: ctest -C Debug --rerun-failed --output-on-failure -T Test -T MemCheck
ubuntu-release:
runs-on: ubuntu-latest
env:
MONGODB_HOST: localhost
MONGODB_PORT: "27017"
services:
mongo:
image: mongo
ports:
- 27017:27017
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: |
wget -O clips_core_source_642.zip https://sourceforge.net/projects/clipsrules/files/CLIPS/6.4.2/clips_core_source_642.zip/download
unzip clips_core_source_642.zip
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r4.1.2/mongo-cxx-driver-r4.1.2.tar.gz
tar -xzf mongo-cxx-driver-r4.1.2.tar.gz
- name: Compile CLIPS
working-directory: clips_core_source_642/core
run: |
make release_cpp
sudo mkdir /usr/local/include/clips
sudo cp *.h /usr/local/include/clips/
sudo cp libclips.a /usr/local/lib/
- name: Compile Mongo C++ driver
working-directory: mongo-cxx-driver-r4.1.2/build
run: |
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF
cmake --build .
sudo cmake --build . --target install
- name: Update library cache
run: |
sudo ldconfig
- name: Configure CMake
run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_MONGODB=ON
- name: Build
run: cmake --build build --config Release
- name: Test
working-directory: build
run: ctest -C Release --rerun-failed --output-on-failure -T Test