From e84a5f0342e5f8e3592371e6a81acec4c10a2e28 Mon Sep 17 00:00:00 2001 From: Hannes Rantzsch Date: Sun, 19 May 2024 12:01:42 +0200 Subject: [PATCH] split test and cov, add schedule --- .github/workflows/ci.yml | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4305155..654da4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,8 @@ on: branches: [ master ] pull_request: branches: [ master ] + schedule: + - cron: '0 4 * * 0' jobs: @@ -20,12 +22,12 @@ jobs: - name: Build and run tests run: cmake --build . --target test --config ${{ matrix.config }} - Unix-test-and-cover: + Unix-test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, macos-11, macos-12, macos-13, macos-14] - config: [Debug, Release, Coverage] + config: [Debug, Release] steps: - uses: actions/checkout@v4 @@ -37,11 +39,7 @@ jobs: brew install gcovr fi - - name: "CMake: configure coverage" - if: matrix.config == 'Coverage' - run: cmake . -DBUILD_TESTS=yes -DCODE_COVERAGE=yes -DCMAKE_BUILD_TYPE=Debug - - name: "CMake: configure test" - if: matrix.config != 'Coverage' + - name: Run cmake run: cmake . -DBUILD_TESTS=yes -DCODE_COVERAGE=no -DCMAKE_BUILD_TYPE=${{ matrix.config }} - name: Build and run tests @@ -52,11 +50,33 @@ jobs: fi cmake --build . --target test + Unix-test-coverage: + runs-on: [ubuntu-22.04, macos-14] + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + if [ ${{ runner.os }} == 'Linux' ]; then + sudo apt-get install dbus-x11 dbus gnome-keyring libsecret-1-dev gcovr + elif [ ${{ runner.os }} == 'macOS' ]; then + brew install gcovr + fi + + - name: Run cmake + run: cmake . -DBUILD_TESTS=yes -DCODE_COVERAGE=yes -DCMAKE_BUILD_TYPE=Debug + + - name: Build and run tests + run: | + if [ ${{ runner.os }} == 'Linux' ]; then + eval $(DISPLAY=:99.0 dbus-launch --sh-syntax) + echo "somepassword" | gnome-keyring-daemon -r -d --unlock + fi + cmake --build . --target test + - name: Generate gcovr report - if: matrix.config == 'Coverage' run: gcovr -r . -f "src/*" -f "include/*" -x -o coverage.xml - name: Upload coverage to Codecov - if: matrix.config == 'Coverage' uses: codecov/codecov-action@v3 with: file: ./coverage.xml