Commit 6ae1e1ecc12b8724accf1804d35a6fb3171084c5
Committed by
GitHub
1 parent
c7819982
ci: set up coverage on GHA (#747)
* ci: set up coverage on GHA Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * ci: update to newer codecov uploader Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * ci: move to newer Windows image * fix: better single file script help and usage strictness * ci: revert update to windows-2022
Showing
8 changed files
with
63 additions
and
99 deletions
.ci/build_doxygen.sh deleted
| 1 | -#!/bin/env sh | |
| 2 | -# (Source me) | |
| 3 | - | |
| 4 | -set -evx | |
| 5 | - | |
| 6 | -#DOXYGEN_URL="http://doxygen.nl/files/doxygen-1.8.17.src.tar.gz" | |
| 7 | -DOXYGEN_URL="https://github.com/doxygen/doxygen/archive/Release_1_8_15.tar.gz" | |
| 8 | -cd "${DEPS_DIR}" | |
| 9 | - | |
| 10 | -if [[ ! -f "${DEPS_DIR}/doxygen/build/bin/doxygen" ]] ; then | |
| 11 | - echo "Downloading Doxygen" | |
| 12 | - mkdir -p doxygen | |
| 13 | - travis_retry wget --no-check-certificate --quiet -O - "${DOXYGEN_URL}" | tar --strip-components=1 -xz -C doxygen | |
| 14 | - cd doxygen | |
| 15 | - mkdir -p build | |
| 16 | - cd build | |
| 17 | - cmake .. | |
| 18 | - make -j2 | |
| 19 | -fi | |
| 20 | - | |
| 21 | -export PATH="${DEPS_DIR}/doxygen/build/bin:${PATH}" | |
| 22 | - | |
| 23 | -cd "${TRAVIS_BUILD_DIR}" | |
| 24 | - | |
| 25 | -set +evx |
.ci/build_lcov.sh deleted
| 1 | -#!/bin/env sh | |
| 2 | -# (Source me) | |
| 3 | -set -evx | |
| 4 | - | |
| 5 | -LCOV_URL="http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.13.orig.tar.gz" | |
| 6 | -cd "${DEPS_DIR}" | |
| 7 | - | |
| 8 | -if [[ ! -f "${DEPS_DIR}/lcov/bin/lcov" ]] ; then | |
| 9 | - echo "Downloading lcov" | |
| 10 | - mkdir -p lcov | |
| 11 | - travis_retry wget --no-check-certificate --quiet -O - "${LCOV_URL}" | tar --strip-components=1 -xz -C lcov | |
| 12 | -fi | |
| 13 | - | |
| 14 | -export PATH="${DEPS_DIR}/lcov/bin:${PATH}" | |
| 15 | -cd "${TRAVIS_BUILD_DIR}" | |
| 16 | - | |
| 17 | -set +evx |
.ci/make_and_test.sh deleted
| 1 | -#!/usr/bin/env bash | |
| 2 | -echo -en "travis_fold:start:script.build\\r" | |
| 3 | -echo "Building..." | |
| 4 | -STD="$1" | |
| 5 | -shift | |
| 6 | -set -evx | |
| 7 | - | |
| 8 | - | |
| 9 | -mkdir -p build | |
| 10 | -cd build | |
| 11 | -cmake .. -DCLI11_WARNINGS_AS_ERRORS=ON -DCLI11_SINGLE_FILE=ON -DCMAKE_CXX_STANDARD="$STD" -DCLI11_SINGLE_FILE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER_LAUNCHER=ccache $@ | |
| 12 | -cmake --build . -- -j2 --keep-going | |
| 13 | - | |
| 14 | -set +evx | |
| 15 | -echo -en "travis_fold:end:script.build\\r" | |
| 16 | -echo -en "travis_fold:start:script.test\\r" | |
| 17 | -echo "Testing..." | |
| 18 | -set -evx | |
| 19 | - | |
| 20 | -ctest --output-on-failure | |
| 21 | - | |
| 22 | -set +evx | |
| 23 | -echo -en "travis_fold:end:script.test\\r" |
.ci/run_codecov.sh deleted
| 1 | -#!/usr/bin/env bash | |
| 2 | - | |
| 3 | -echo -en "travis_fold:start:script.build\\r" | |
| 4 | -echo "Building..." | |
| 5 | -set -evx | |
| 6 | - | |
| 7 | -cd "${TRAVIS_BUILD_DIR}" | |
| 8 | -mkdir -p build | |
| 9 | -cd build | |
| 10 | -cmake .. -DCLI11_SINGLE_FILE_TESTS=OFF -DCLI11_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Coverage | |
| 11 | -cmake --build . -- -j2 | |
| 12 | -cmake --build . --target CLI11_coverage | |
| 13 | - | |
| 14 | -set +evx | |
| 15 | -echo -en "travis_fold:end:script.build\\r" | |
| 16 | -echo -en "travis_fold:start:script.lcov\\r" | |
| 17 | -echo "Capturing and uploading LCov..." | |
| 18 | -set -evx | |
| 19 | - | |
| 20 | -lcov --directory . --capture --output-file coverage.info # capture coverage info | |
| 21 | -lcov --remove coverage.info '*/tests/*' '*/examples/*' '*gtest*' '*gmock*' '/usr/*' --output-file coverage.info # filter out system | |
| 22 | -lcov --list coverage.info #debug info | |
| 23 | -# Uploading report to CodeCov | |
| 24 | -bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" | |
| 25 | - | |
| 26 | -set +evx | |
| 27 | -echo -en "travis_fold:end:script.lcov\\r" |
.github/codecov.yml
0 → 100644
.github/workflows/tests.yml
| ... | ... | @@ -6,7 +6,55 @@ on: |
| 6 | 6 | - v* |
| 7 | 7 | pull_request: |
| 8 | 8 | |
| 9 | +concurrency: | |
| 10 | + group: ${{ github.workflow }}-${{ github.ref }} | |
| 11 | + cancel-in-progress: true | |
| 12 | + | |
| 9 | 13 | jobs: |
| 14 | + coverage: | |
| 15 | + name: Coverage | |
| 16 | + runs-on: ubuntu-latest | |
| 17 | + strategy: | |
| 18 | + matrix: | |
| 19 | + std: ["11", "14", "17", "20"] | |
| 20 | + steps: | |
| 21 | + - uses: actions/checkout@v3 | |
| 22 | + | |
| 23 | + - name: Get LCov | |
| 24 | + run: | | |
| 25 | + wget https://github.com/linux-test-project/lcov/releases/download/v1.16/lcov-1.16.tar.gz | |
| 26 | + tar -xzf lcov-1.16.tar.gz | |
| 27 | + cd lcov-1.16 | |
| 28 | + sudo make install | |
| 29 | + | |
| 30 | + - name: Configure | |
| 31 | + run: | | |
| 32 | + cmake -S . -B build \ | |
| 33 | + -DCMAKE_CXX_STANDARD=${{matrix.std}} \ | |
| 34 | + -DCLI11_SINGLE_FILE_TESTS=OFF \ | |
| 35 | + -DCLI11_EXAMPLES=OFF \ | |
| 36 | + -DCMAKE_BUILD_TYPE=Coverage | |
| 37 | + | |
| 38 | + - name: Build | |
| 39 | + run: cmake --build build -j4 | |
| 40 | + | |
| 41 | + - name: Test | |
| 42 | + run: cmake --build build --target CLI11_coverage | |
| 43 | + | |
| 44 | + - name: Prepare coverage | |
| 45 | + run: | | |
| 46 | + lcov --directory . --capture --output-file coverage.info | |
| 47 | + lcov --remove coverage.info '*/tests/*' '*/examples/*' '/usr/*' --output-file coverage.info | |
| 48 | + lcov --list coverage.info | |
| 49 | + working-directory: build | |
| 50 | + | |
| 51 | + - name: Upload coverage | |
| 52 | + run: | | |
| 53 | + curl -Os https://uploader.codecov.io/latest/linux/codecov | |
| 54 | + chmod +x codecov | |
| 55 | + ./codecov | |
| 56 | + working-directory: build | |
| 57 | + | |
| 10 | 58 | clang-tidy: |
| 11 | 59 | name: Clang-Tidy |
| 12 | 60 | runs-on: ubuntu-latest | ... | ... |
azure-pipelines.yml
| ... | ... | @@ -40,12 +40,12 @@ jobs: |
| 40 | 40 | vmImage: "macOS-latest" |
| 41 | 41 | cli11.std: 11 |
| 42 | 42 | Windows17: |
| 43 | - vmImage: "vs2017-win2016" | |
| 43 | + vmImage: "windows-2019" | |
| 44 | 44 | cli11.std: 17 |
| 45 | 45 | Windows11: |
| 46 | - vmImage: "vs2017-win2016" | |
| 46 | + vmImage: "windows-2019" | |
| 47 | 47 | cli11.std: 11 |
| 48 | - Windowslatest: | |
| 48 | + WindowsLatest: | |
| 49 | 49 | vmImage: "windows-2019" |
| 50 | 50 | cli11.std: 20 |
| 51 | 51 | cli11.options: -DCMAKE_CXX_FLAGS="/std:c++latest /EHsc" | ... | ... |
scripts/MakeSingleHeader.py
| ... | ... | @@ -4,7 +4,7 @@ from __future__ import print_function, unicode_literals |
| 4 | 4 | |
| 5 | 5 | import os |
| 6 | 6 | import re |
| 7 | -from argparse import ArgumentParser | |
| 7 | +import argparse | |
| 8 | 8 | from subprocess import Popen, PIPE |
| 9 | 9 | import warnings |
| 10 | 10 | |
| ... | ... | @@ -128,8 +128,9 @@ def make_header(output, main_header, files, tag, namespace, macro=None, version= |
| 128 | 128 | |
| 129 | 129 | |
| 130 | 130 | if __name__ == "__main__": |
| 131 | - parser = ArgumentParser( | |
| 132 | - usage="Convert source to single header include. Can optionally add namespace and search-replace replacements (for macros)." | |
| 131 | + parser = argparse.ArgumentParser( | |
| 132 | + usage="Convert source to single header include. Can optionally add namespace and search-replace replacements (for macros).", | |
| 133 | + formatter_class=argparse.ArgumentDefaultsHelpFormatter, | |
| 133 | 134 | ) |
| 134 | 135 | parser.add_argument("--output", default=None, help="Single header file output") |
| 135 | 136 | parser.add_argument( |
| ... | ... | @@ -137,7 +138,7 @@ if __name__ == "__main__": |
| 137 | 138 | default="CLI11.hpp.in", |
| 138 | 139 | help="The main include file that defines the other files", |
| 139 | 140 | ) |
| 140 | - parser.add_argument("files", nargs="*", help="The header files") | |
| 141 | + parser.add_argument("files", nargs="+", help="The header files") | |
| 141 | 142 | parser.add_argument("--namespace", default="CLI", help="Set the namespace") |
| 142 | 143 | parser.add_argument("--tag", default="CLI11", help="Tag to look up") |
| 143 | 144 | parser.add_argument( | ... | ... |