Skip to content

Fix tests

Fix tests #119

name: CMake on a single platform
on:
push:
branches: [ "*" ]
pull_request:
branches: [ "*" ]
env:
BUILD_TYPE: Release
BASE_PATH: ${{github.workspace}}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y libmongoc-1.0-0 curl cmake build-essential \
libssl-dev libboost-all-dev libpoco-dev libcurl4-openssl-dev
sudo apt-get install -y docker
- name: Install spdlog
run: |
git clone https://github.com/gabime/spdlog.git
cd spdlog
git checkout v1.12.0
mkdir build && cd build
cmake .. -DCMAKE_POSITION_INDEPENDENT_CODE=ON
sudo make install
sudo ldconfig
- name: Setup External Libraries
run: |
mkdir -p external_libraries
cd external_libraries
# Clone Crow
git clone --recurse-submodules https://github.com/CrowCpp/Crow.git Crow
# Download and extract Boost
curl -L "https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz" -o boost.tar.gz
tar -xzf boost.tar.gz
mv boost_1_86_0 boost
rm boost.tar.gz
# Download and extract Asio
curl -L "https://sourceforge.net/projects/asio/files/asio/1.30.2%20%28Stable%29/asio-1.30.2.tar.gz/download" -o asio.tar.gz
tar -xzf asio.tar.gz
mv asio-1.30.2 asio
rm asio.tar.gz
# Download and install MongoDB C++ Driver
curl -L "https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.11.0/mongo-cxx-driver-r3.11.0.tar.gz" -o mongo-cxx-driver.tar.gz
tar -xzf mongo-cxx-driver.tar.gz
mv mongo-cxx-driver-r3.11.0 mongo-cxx-driver
cd mongo-cxx-driver/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DMONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX=OFF
sudo cmake --build . --target install
cd ../..
rm mongo-cxx-driver.tar.gz
# Install jwt-cpp
git clone https://github.com/Thalhammer/jwt-cpp.git
cd jwt-cpp
mkdir build && cd build
cmake ..
sudo make install
cd ../..
# Install bcrypt
git clone https://github.com/trusch/libbcrypt.git bcrypt
cd bcrypt
mkdir build && cd build
cmake ..
make
sudo make install
cd ../..
# Install Poco library
git clone https://github.com/pocoproject/poco.git Poco
cd Poco || { echo "Failed to change to Poco directory"; exit 1; }
mkdir -p cmake-build
cd cmake-build || { echo "Failed to change to Poco build directory"; exit 1; }
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
cd ../..
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: setup database
run: docker compose up -d
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
- name: Clean up
run: |
cd ${{github.workspace}}/external_libraries
rm -f *.tar.gz