From 031497b38437d77f22bbce4d8943250331485f21 Mon Sep 17 00:00:00 2001 From: Artyom Fartygin Date: Sat, 1 Jun 2024 16:30:33 +0300 Subject: [PATCH 1/3] [#26] Refactor unit test CI for ubuntu --- .github/workflows/{build-test.yml => unit-testing.yml} | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) rename .github/workflows/{build-test.yml => unit-testing.yml} (80%) diff --git a/.github/workflows/build-test.yml b/.github/workflows/unit-testing.yml similarity index 80% rename from .github/workflows/build-test.yml rename to .github/workflows/unit-testing.yml index 21a8e5c..ccdb8fd 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/unit-testing.yml @@ -1,4 +1,4 @@ -name: 'Build test' +name: 'unit-testing' on: push: @@ -12,15 +12,14 @@ on: workflow_dispatch: jobs: - build: + build-test-ubuntu: runs-on: ubuntu-latest steps: - name: Install dependencies run: | sudo apt update - sudo apt install -y cmake graphviz sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt install -y g++-13 gcc-13 + sudo apt install -y cmake graphviz g++-13 gcc-13 - uses: actions/checkout@v4 @@ -33,5 +32,5 @@ jobs: - name: Build run: cd build && cmake --build . - - name: Unit tests + - name: Unit testing run: cd build && ctest From af8439e2e22b1d56e71ec7bc7648817da04e6e45 Mon Sep 17 00:00:00 2001 From: Artyom Fartygin Date: Sat, 1 Jun 2024 16:36:15 +0300 Subject: [PATCH 2/3] [#26] Add CI for macOS with unit testing --- .github/workflows/unit-testing.yml | 20 ++++++++++++++++++++ CMakeLists.txt | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml index ccdb8fd..efbf34d 100644 --- a/.github/workflows/unit-testing.yml +++ b/.github/workflows/unit-testing.yml @@ -34,3 +34,23 @@ jobs: - name: Unit testing run: cd build && ctest + + build-test-macos: + runs-on: macos-latest + steps: + - name: Install dependencies + run: | + brew install cmake graphviz + softwareupdate --install -a + /usr/bin/xcodebuild -version + + - uses: actions/checkout@v4 + + - name: Configure + run: cmake -S . -B build -DEXPERIMENTAL=1 + + - name: Build + run: cd build && cmake --build . + + - name: Unit testing + run: cd build && ctest diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b0c161..3a529c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,10 @@ if (COVERAGE) set(COMPILATION_FLAGS "${COMPILATION_FLAGS} --coverage") endif() set(CMAKE_C_FLAGS ${COMPILATION_FLAGS}) +if (EXPERIMENTAL) + message("Adding -fexperimental-library flag to C++ compilation") + set(COMPILATION_FLAGS "${COMPILATION_FLAGS} -fexperimental-library") +endif() set(CMAKE_CXX_FLAGS ${COMPILATION_FLAGS}) ## Download dependencies From 8e04aa4b5cc30ff1fc3b96942b5bfa598ceade93 Mon Sep 17 00:00:00 2001 From: Artyom Fartygin Date: Sun, 2 Jun 2024 12:23:00 +0300 Subject: [PATCH 3/3] [#26] Add CI for Windows with unit testing --- .github/workflows/unit-testing.yml | 18 ++++++++++++++++++ CMakeLists.txt | 24 +++++++++++++----------- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml index efbf34d..fac590c 100644 --- a/.github/workflows/unit-testing.yml +++ b/.github/workflows/unit-testing.yml @@ -54,3 +54,21 @@ jobs: - name: Unit testing run: cd build && ctest + + build-test-windows: + runs-on: windows-latest + steps: + - name: Install dependencies + run: | + choco install -y graphviz cmake + + - uses: actions/checkout@v4 + + - name: Configure + run: cmake -S . -B build + + - name: Build + run: cd build && cmake --build . + + - name: Unit testing + run: cd build && ctest diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a529c9..2c963c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,18 +40,20 @@ if (PACKAGE) set(MACROS_PACKAGE_FLAGS "-DCREATE_PACKAGE ${PACKAGE_TYPE_FLAG}") endif () -set(MACROS_FLAGS "-DSCC_VERSION=\"\\\"${PRJ_VERSION}\\\"\" \ --DSCC_MAINTAINERS=\"\\\"${PRJ_MAINTAINERS}\\\"\" ${MACROS_PACKAGE_FLAGS}") -set(COMPILATION_FLAGS "-Wall -Wextra -g ${MACROS_FLAGS}") -if (COVERAGE) - set(COMPILATION_FLAGS "${COMPILATION_FLAGS} --coverage") +if (NOT WIN32) + set(MACROS_FLAGS "-DSCC_VERSION=\"\\\"${PRJ_VERSION}\\\"\" \ + -DSCC_MAINTAINERS=\"\\\"${PRJ_MAINTAINERS}\\\"\" ${MACROS_PACKAGE_FLAGS}") + set(COMPILATION_FLAGS "-Wall -Wextra -g ${MACROS_FLAGS}") + if (COVERAGE) + set(COMPILATION_FLAGS "${COMPILATION_FLAGS} --coverage") + endif() + set(CMAKE_C_FLAGS ${COMPILATION_FLAGS}) + if (EXPERIMENTAL) + message("Adding -fexperimental-library flag to C++ compilation") + set(COMPILATION_FLAGS "${COMPILATION_FLAGS} -fexperimental-library") + endif() + set(CMAKE_CXX_FLAGS ${COMPILATION_FLAGS}) endif() -set(CMAKE_C_FLAGS ${COMPILATION_FLAGS}) -if (EXPERIMENTAL) - message("Adding -fexperimental-library flag to C++ compilation") - set(COMPILATION_FLAGS "${COMPILATION_FLAGS} -fexperimental-library") -endif() -set(CMAKE_CXX_FLAGS ${COMPILATION_FLAGS}) ## Download dependencies