From 4a7b1d5dcf91c95d472f4ebb73291d7785edd626 Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Sun, 2 May 2021 20:39:40 +0200 Subject: [PATCH] Actions: Isolate somewhat flaky coverage task --- .github/workflows/coverage.yml | 77 ++++++++++++++++++++++++++++++++++ .github/workflows/linux.yml | 5 --- 2 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/coverage.yml diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 00000000..2ae575de --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,77 @@ +# __ __ _ +# ___\ \/ /_ __ __ _| |_ +# / _ \\ /| '_ \ / _` | __| +# | __// \| |_) | (_| | |_ +# \___/_/\_\ .__/ \__,_|\__| +# |_| XML parser +# +# Copyright (c) 2021 Sebastian Pipping +# Licensed under the MIT license: +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to permit +# persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. + +name: Collect test coverage + +on: + pull_request: + push: + schedule: + - cron: '0 2 * * 5' # Every Friday at 2am + +jobs: + checks: + name: Collect test coverage + runs-on: ubuntu-18.04 + env: + CFLAGS: -g3 -pipe + steps: + - uses: actions/checkout@v2.3.4 + - name: Add Clang/LLVM repositories + run: |- + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main' + - name: Install build dependencies + # NOTE: Please note the version-specific ${PATH} extension for Clang in .travis.sh + run: |- + sudo dpkg --add-architecture i386 # for wine32 + sudo apt-get update + sudo apt-get install --yes --no-install-recommends -V \ + clang-11 \ + clang-format-11 \ + llvm-11 \ + cmake \ + docbook2x \ + dos2unix \ + lcov \ + libbsd-dev \ + lzip \ + mingw-w64 \ + moreutils \ + wine-stable \ + wine32 + - name: Unshallow Git clone + run: | + git fetch --tags --unshallow origin # for "git describe" in coverage.sh + - name: Perform check "${{ matrix.MODE }}" + env: + MODE: coverage-sh + TRAVIS_OS_NAME: linux + run: | + exec ./.travis.sh diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 3af00433..9f0debf1 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -24,7 +24,6 @@ jobs: - MODE: clang-format - MODE: cmake-oos FLAT_ENV: CMAKE_ARGS="-DEXPAT_ATTR_INFO=ON -DEXPAT_BUILD_FUZZERS=ON -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++" - - MODE: coverage-sh - MODE: qa-sh FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_ATTR_INFO=ON - MODE: qa-sh @@ -75,10 +74,6 @@ jobs: moreutils \ wine-stable \ wine32 - - name: Unshallow Git clone (as needed) - if: matrix.MODE == 'coverage-sh' - run: | - git fetch --tags --unshallow origin # for "git describe" in coverage.sh - name: Perform check "${{ matrix.MODE }}" env: MODE: ${{ matrix.MODE }}