Skip to content

Feature/ci build gcc #10

Feature/ci build gcc

Feature/ci build gcc #10

name: GCC - Build and Run Tests
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
env:
DEFAULT_CXX_STANDARD: 20
DEFAULT_GCC_VERSION: 12
CMAKE_GENERATOR: Ninja
DEBIAN_FRONTEND: noninteractive
DEFAULT_BUILD_TYPE: Debug
DEFAULT_CXX_FLAGS: ""
jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install build tools
run: |
sudo apt install gcc-12 g++-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12
sudo update-alternatives --set gcc /usr/bin/gcc-12
sudo apt install -y ninja-build
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_C_COMPILER="/usr/bin/gcc-12" -DCMAKE_CXX_COMPILER="/usr/bin/g++-12" -DCMAKE_CXX_STANDARD=${{env.DEFAULT_CXX_STANDARD}} -DCMAKE_CXX_FLAGS_INIT=${{env.DEFAULT_CXX_FLAGS}} -DCMAKE_BUILD_TYPE=${{env.DEFAULT_BUILD_TYPE}}
- name: Build Unit Tests
run: cmake DCMAKE_CXX_FLAGS_INIT=${{env.DEFAULT_CXX_FLAGS}} --build ${{github.workspace}}/build --config ${{env.DEFAULT_BUILD_TYPE}} -v -t ctl_test
- name: Test
working-directory: ${{github.workspace}}/build/test
run: ctest -j $(nproc) -C ${{env.DEFAULT_BUILD_TYPE}}