From: Nathan Moinvaziri Date: Mon, 4 Nov 2019 00:42:23 +0000 (-0800) Subject: Improvements to GitHub Actions for code coverage. X-Git-Tag: 1.9.9-b1~382 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7dd7afca99d3ff655359eef698a07895a1f28bf6;p=thirdparty%2Fzlib-ng.git Improvements to GitHub Actions for code coverage. --- diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 762c29d2..29fbb264 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -202,11 +202,15 @@ jobs: - name: Ubuntu 18.04 Clang os: ubuntu-18.04 compiler: clang + packages: llvm-6.0 + gcov-exec: llvm-cov-6.0 gcov codecov: ubuntu_clang - name: Ubuntu 18.04 Clang Debug os: ubuntu-18.04 compiler: clang + packages: llvm-6.0 + gcov-exec: llvm-cov-6.0 gcov codecov: ubuntu_clang build-config: Debug @@ -214,7 +218,8 @@ jobs: os: ubuntu-18.04 compiler: clang cmake-args: -GNinja -DWITH_MSAN=ON - packages: ninja-build + packages: ninja-build llvm-6.0 + gcov-exec: llvm-cov-6.0 gcov cflags: -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins codecov: ubuntu_clang_msan @@ -262,36 +267,34 @@ jobs: - uses: actions/checkout@v1 - name: Install packages (Ubuntu) - if: runner.os == 'Linux' + if: runner.os == 'Linux' && matrix.packages run: | sudo apt-get update - sudo apt-get install -y ninja-build ${{ matrix.packages }} - sudo pip install codecov - - - name: Install Clang code coverage tools (Ubuntu) - if: runner.os == 'Linux' && matrix.codecov && matrix.compiler == 'clang' - run: | - sudo apt-get update - sudo apt-get install -y gcc-7 clang-7 clang-tools-7 llvm lcov + sudo apt-get install -y ${{ matrix.packages }} - name: Install packages (Windows) if: runner.os == 'Windows' + run: | + choco install ninja ${{ matrix.packages }} + + - name: Install packages (Windows/GCC) + if: runner.os == 'Windows' && matrix.codecov && matrix.compiler == 'gcc' # Use gcov-7 via mingw on windows because gcov-8 throws tons of warnings # https://partner-bugzilla.redhat.com/show_bug.cgi?id=1577508 - # Need to use special fork of codecov-python for Windows - # https://github.com/codecov/codecov-python/pull/169 run: | - python -u -m pip install --upgrade pip - python -u -m pip -v install git+https://github.com/nmoinvaz/codecov-python.git@master - choco install ninja ${{ matrix.packages }} - choco uninstall mingw - choco install mingw --version=7.3.0 + choco install mingw --version=7.3.0 --force --allow-downgrade - name: Install packages (macOS) if: runner.os == 'macOS' run: | - brew install ninja llvm ${{ matrix.packages }} - sudo pip install codecov + brew install ninja ${{ matrix.packages }} + + - name: Install codecov.io tools + if: matrix.codecov + # Need to use special fork of codecov-python for Windows + # https://github.com/codecov/codecov-python/pull/169 + run: | + python -u -m pip -v install git+https://github.com/nmoinvaz/codecov-python.git@master - name: Generate project files # Shared libaries turned off for qemu ppc* and sparc & reduce code coverage sources @@ -323,10 +326,9 @@ jobs: - name: Upload coverage report if: matrix.codecov - shell: pwsh run: | - $gcovfiles = (Get-ChildItem -Path "*.gcov").Name - codecov -f $gcovfiles -F "${{ matrix.codecov }}" --name "${{ matrix.name }}" + cd ${{ matrix.build-dir || '.' }} + python -m codecov -F "${{ matrix.codecov }}" --name "${{ matrix.name }}" --gcov-exec="${{ matrix.gcov-exec || 'gcov' }}" env: # Codecov does not yet support GitHub Actions CODECOV_TOKEN: "${{secrets.CODECOV_TOKEN}}" \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index e4729847..a1ccfeb4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ if(NOT CMAKE_C_EXTENSIONS) set (CMAKE_C_EXTENSIONS OFF) # Boolean specifying whether compiler specific extensions are requested endif() set(VALID_C_STANDARDS "99" "11") -if(NOT CMAKE_C_STANDARD IN_LIST VALID_C_STANDARDS ) +if(NOT CMAKE_C_STANDARD IN_LIST VALID_C_STANDARDS) MESSAGE(FATAL_ERROR "CMAKE_C_STANDARD:STRING=${CMAKE_C_STANDARD} not in know standards list\n ${VALID_C_STANDARDS}") endif() @@ -250,10 +250,10 @@ else() endif() if(CODECOVERAGE) if(CMAKE_C_COMPILER_ID MATCHES "Clang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O1 -g -coverage") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -coverage") elseif(__GNUC__) # Some versions of GCC don't support -coverage shorthand - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O1 -fprofile-arcs -ftest-coverage") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fprofile-arcs -ftest-coverage") endif() endif()