From 63f37c475b5c17c5b7c1c3eb17df8a6e1a5119b7 Mon Sep 17 00:00:00 2001 From: Petr Bena Date: Thu, 6 Aug 2026 22:23:06 +0200 Subject: [PATCH] new ci --- .github/workflows/unit-tests.yml | 89 +++++++++++++++++++++++++++ .travis.yml | 44 ------------- src/tests/grumpyd/CMakeLists.txt | 2 + src/tests/libcore/CMakeLists.txt | 2 + src/tests/libircclient/CMakeLists.txt | 2 + travis/before_install.sh | 4 -- travis/before_script.sh | 23 ------- travis/install.sh | 14 ----- travis/script.sh | 8 --- 9 files changed, 95 insertions(+), 93 deletions(-) create mode 100644 .github/workflows/unit-tests.yml delete mode 100644 .travis.yml delete mode 100644 travis/before_install.sh delete mode 100644 travis/before_script.sh delete mode 100644 travis/install.sh delete mode 100644 travis/script.sh diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 0000000..3eb3e77 --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,89 @@ +name: Unit Tests + +on: + push: + pull_request: + +jobs: + unit-tests: + name: ${{ matrix.platform }} Qt ${{ matrix.qt }} + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + include: + - platform: Linux + runner: ubuntu-24.04 + qt: 5 + - platform: Linux + runner: ubuntu-24.04 + qt: 6 + - platform: macOS + runner: macos-13 + qt: 5 + qt-version: 5.15.2 + - platform: macOS + runner: macos-13 + qt: 6 + qt-version: 6.8.* + + steps: + - name: Check out sources + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Linux Qt 5 dependencies + if: runner.os == 'Linux' && matrix.qt == 5 + run: | + sudo apt-get update + sudo apt-get install -y \ + build-essential \ + cmake \ + ninja-build \ + qtbase5-dev \ + qtdeclarative5-dev \ + qtmultimedia5-dev \ + libqt5sql5-sqlite + + - name: Install Linux Qt 6 dependencies + if: runner.os == 'Linux' && matrix.qt == 6 + run: | + sudo apt-get update + sudo apt-get install -y \ + build-essential \ + cmake \ + ninja-build \ + qt6-base-dev \ + qt6-declarative-dev \ + qt6-multimedia-dev \ + libqt6sql6-sqlite + + - name: Install macOS Qt + if: runner.os == 'macOS' + uses: jurplel/install-qt-action@v4 + with: + version: ${{ matrix.qt-version }} + archives: qtbase qtdeclarative + modules: qtmultimedia + cache: true + + - name: Install macOS build tools + if: runner.os == 'macOS' + run: brew install ninja + + - name: Configure + run: > + cmake -S src -B build + -G Ninja + -DUNIT_TESTS=true + -DQT5_BUILD=${{ matrix.qt == 5 && 'true' || 'false' }} + -DQT6_BUILD=${{ matrix.qt == 6 && 'true' || 'false' }} + -DCMAKE_BUILD_TYPE=Release + -Wno-dev + + - name: Build + run: cmake --build build --parallel 2 + + - name: Run tests + run: ctest --test-dir build --output-on-failure diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0cc8e76..0000000 --- a/.travis.yml +++ /dev/null @@ -1,44 +0,0 @@ -# See http://docs.travis-ci.com/user/customizing-the-build/ -# See ./travis/* for the actual scripts that get run - -sudo: required -dist: trusty -language: cpp - -addons: - apt: - packages: - - cmake - - qt-sdk - - gcc-4.8 - - g++-4.8 - -env: - - THENEEDFORTHIS=FAIL - -branches: - except: - - debian - - nightly/debian - - nightly/ubuntu - - ubuntu - -matrix: - include: -# - env: QTTYPE=4 - - env: QTTYPE=5 - exclude: - - env: THENEEDFORTHIS=FAIL - -before_install: bash ./travis/before_install.sh -install: bash ./travis/install.sh - -before_script: bash ./travis/before_script.sh -script: bash ./travis/script.sh - -notifications: - irc: - channels: - - "irc.tm-irc.org#grumpy" - on_failure: always - on_success: change diff --git a/src/tests/grumpyd/CMakeLists.txt b/src/tests/grumpyd/CMakeLists.txt index 8fc3bc2..fc3b523 100644 --- a/src/tests/grumpyd/CMakeLists.txt +++ b/src/tests/grumpyd/CMakeLists.txt @@ -51,3 +51,5 @@ elseif (QT5_BUILD) endif() TARGET_LINK_LIBRARIES(grumpyd_ut grumpycore ${QT_LIBRARIES}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) + +add_test(NAME grumpyd_ut COMMAND grumpyd_ut) diff --git a/src/tests/libcore/CMakeLists.txt b/src/tests/libcore/CMakeLists.txt index f31cf38..06356bd 100644 --- a/src/tests/libcore/CMakeLists.txt +++ b/src/tests/libcore/CMakeLists.txt @@ -59,3 +59,5 @@ endif() TARGET_LINK_LIBRARIES(core_ut grumpycore ${QT_LIBRARIES}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) + +add_test(NAME core_ut COMMAND core_ut) diff --git a/src/tests/libircclient/CMakeLists.txt b/src/tests/libircclient/CMakeLists.txt index 41440a5..9e38cac 100644 --- a/src/tests/libircclient/CMakeLists.txt +++ b/src/tests/libircclient/CMakeLists.txt @@ -50,3 +50,5 @@ elseif (QT5_BUILD) endif() TARGET_LINK_LIBRARIES(libircclient_ut ircclient ${QT_LIBRARIES}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) + +add_test(NAME libircclient_ut COMMAND libircclient_ut) diff --git a/travis/before_install.sh b/travis/before_install.sh deleted file mode 100644 index b31e643..0000000 --- a/travis/before_install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! /bin/bash - -sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa -sudo apt-get update diff --git a/travis/before_script.sh b/travis/before_script.sh deleted file mode 100644 index a57dd12..0000000 --- a/travis/before_script.sh +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/bash - -g++ --version - -cd /home/travis/build/grumpy-irc/grumpy/src/sqlite -unzip *.zip -mv sqlite*/* . -cd /home/travis/build/grumpy-irc/grumpy/ -git submodule init -git submodule update -mkdir temp -cd temp - -if [ "$QTTYPE" = "4" ]; then - cmake ../src -DQT5_BUILD=FALSE -DUNIT_TESTS=true - make || exit 1 -fi - -if [ "$QTTYPE" = "5" ]; then - cmake ../src -DQT5_BUILD=TRUE -DUNIT_TESTS=TRUE - make || exit 1 -fi - diff --git a/travis/install.sh b/travis/install.sh deleted file mode 100644 index b6f4090..0000000 --- a/travis/install.sh +++ /dev/null @@ -1,14 +0,0 @@ -#! /bin/bash - -#if [ "$QTTYPE" = "4" ]; then -# sudo apt-get install -y libqt4-webkit libqtwebkit-dev qt4-qmake qt4-dev-tools cmake -#fi - -if [ "$QTTYPE" = "5" ]; then - sudo apt-get install -y qtmultimedia5-dev qtbase5-dev qtdeclarative5-dev qt5-default qttools5-dev-tools qtscript5-dev -fi - -#sudo apt-get install g++-4.7 -#sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 -#sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 80 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 -#sudo update-alternatives --config gcc diff --git a/travis/script.sh b/travis/script.sh deleted file mode 100644 index 7f5b55c..0000000 --- a/travis/script.sh +++ /dev/null @@ -1,8 +0,0 @@ -#! /bin/bash - - -echo Testing QTTYPE $QTTYPE -cd /home/travis/build/grumpy-irc/grumpy/temp/bin || exit 1 -./libircclient_ut || exit 1 -./core_ut || exit 1 -./grumpyd_ut || exit 1