1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-05-08 15:53:51 +00:00

Dropping cmake and clang 5 since they are now in Travis (#89)

* Dropping cmake and clang 5 since they are now in Travis

* Dropping pathlib since it is now unused

* Doxy build

* Folding output and fixing ccache
This commit is contained in:
Henry Schreiner 2018-03-23 15:28:30 +01:00 committed by GitHub
parent b4b7d991f6
commit 2ef176e86c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 105 additions and 113 deletions

View File

@ -1,6 +1,6 @@
branches: branches:
except: only:
- gh-pages - master
install: install:
- set PATH=C:\Python36;%PATH% - set PATH=C:\Python36;%PATH%

View File

@ -1,17 +0,0 @@
CMAKE_VERSION=3.9.6
CMAKE_MVERSION=${CMAKE_VERSION%.*}
# Non Bash version:
# echo CMAKE_MVERSION=`$var | awk -F"." '{ print $1"."$2 }'`
if [ "$TRAVIS_OS_NAME" = "linux" ] ; then CMAKE_URL="https://cmake.org/files/v${CMAKE_MVERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz" ; fi
if [ "$TRAVIS_OS_NAME" = "osx" ] ; then CMAKE_URL="https://cmake.org/files/v$CMAKE_MVERSION/cmake-$CMAKE_VERSION-Darwin-x86_64.tar.gz" ; fi
cd "${DEPS_DIR}"
if [[ ! -f "${DEPS_DIR}/cmake/bin/cmake" ]] ; then
echo "Downloading CMake $CMAKE_VERSION"
mkdir -p cmake
travis_retry wget --no-check-certificate --quiet -O - "${CMAKE_URL}" | tar --strip-components=1 -xz -C cmake
fi
export PATH="${DEPS_DIR}/cmake/bin:${PATH}"
cd "${TRAVIS_BUILD_DIR}"

View File

@ -1,3 +1,5 @@
set -evx
DOXYGEN_URL="ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz" DOXYGEN_URL="ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz"
cd "${DEPS_DIR}" cd "${DEPS_DIR}"
@ -15,3 +17,6 @@ fi
export PATH="${DEPS_DIR}/doxygen/build/bin:${PATH}" export PATH="${DEPS_DIR}/doxygen/build/bin:${PATH}"
cd "${TRAVIS_BUILD_DIR}" cd "${TRAVIS_BUILD_DIR}"
set +evx

View File

@ -1,3 +1,5 @@
set -evx
LCOV_URL="http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.13.orig.tar.gz" LCOV_URL="http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.13.orig.tar.gz"
cd "${DEPS_DIR}" cd "${DEPS_DIR}"
@ -9,3 +11,5 @@ fi
export PATH="${DEPS_DIR}/lcov/bin:${PATH}" export PATH="${DEPS_DIR}/lcov/bin:${PATH}"
cd "${TRAVIS_BUILD_DIR}" cd "${TRAVIS_BUILD_DIR}"
set +evx

View File

@ -1,11 +1,21 @@
#!/usr/bin/env sh #!/usr/bin/env bash
echo -en "travis_fold:start:script.build\\r"
echo "Building with tidy on..."
set -evx set -evx
mkdir build-tidy || true mkdir -p build-tidy
cd build-tidy cd build-tidy
CXX_FLAGS="-Werror -Wall -Wextra -pedantic -std=c++11" cmake .. -DCLANG_TIDY_FIX=ON CXX_FLAGS="-Werror -Wall -Wextra -pedantic -std=c++11" cmake .. -DCLANG_TIDY_FIX=ON
cmake --build . cmake --build .
set -evx
echo -en "travis_fold:end:script.build\\r"
echo -en "travis_fold:start:script.compare\\r"
echo "Checking git diff..."
set -evx
git diff --exit-code --color git diff --exit-code --color
set +evx set +evx
echo -en "travis_fold:end:script.compare\\r"

20
.ci/make_and_test.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
echo -en "travis_fold:start:script.build\\r"
echo "Building..."
set -evx
mkdir -p build
cd build
cmake .. -DCLI_CXX_STD=$1 -DCLI_SINGLE_FILE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
cmake --build . -- -j2
set +evx
echo -en "travis_fold:end:script.build\\r"
echo -en "travis_fold:start:script.test\\r"
echo "Testing..."
set -evx
ctest --output-on-failure
set +evx
echo -en "travis_fold:end:script.test\\r"

View File

@ -1,18 +0,0 @@
cd "${DEPS_DIR}"
mkdir -p extrabin
cd extrabin
if [ "$CXX" = "g++" ] ; then
ln -s `which gcc-$COMPILER` gcc
ln -s `which g++-$COMPILER` g++
ln -s `which gcov-$COMPILER` gcov
else
ln -s `which clang-$COMPILER` clang
ln -s `which clang++-$COMPILER` clang++
ln -s `which clang-format-$COMPILER` clang-format
ln -s `which clang-tidy-$COMPILER` clang-tidy
fi
export PATH="${DEPS_DIR}/extrabin":$PATH
cd "${TRAVIS_BUILD_DIR}"

View File

@ -1,3 +1,7 @@
#!/usr/bin/env bash
echo -en "travis_fold:start:script.build\\r"
echo "Building..."
set -evx set -evx
cd ${TRAVIS_BUILD_DIR} cd ${TRAVIS_BUILD_DIR}
@ -7,8 +11,17 @@ cmake .. -DCLI_SINGLE_FILE_TESTS=OFF -DCLI_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Cover
cmake --build . -- -j2 cmake --build . -- -j2
cmake --build . --target CLI_coverage cmake --build . --target CLI_coverage
set +evx
echo -en "travis_fold:end:script.build\\r"
echo -en "travis_fold:start:script.lcov\\r"
echo "Capturing and uploading LCov..."
set -evx
lcov --directory . --capture --output-file coverage.info # capture coverage info lcov --directory . --capture --output-file coverage.info # capture coverage info
lcov --remove coverage.info '*/tests/*' '*/examples/*' '*gtest*' '*gmock*' '/usr/*' --output-file coverage.info # filter out system lcov --remove coverage.info '*/tests/*' '*/examples/*' '*gtest*' '*gmock*' '/usr/*' --output-file coverage.info # filter out system
lcov --list coverage.info #debug info lcov --list coverage.info #debug info
# Uploading report to CodeCov # Uploading report to CodeCov
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
set +evx
echo -en "travis_fold:end:script.lcov\\r"

View File

@ -1,20 +0,0 @@
#!/usr/bin/env sh
set -evx
mkdir build || true
cd build
cmake .. -DCLI_CXX_STD=11 -DCLI_SINGLE_FILE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build . -- -j2
ctest --output-on-failure
if [ -n "$CLI_CXX_STD" ] && [ "$CLI_CXX_STD" -ge "14" ] ; then
cmake .. -DCLI_CXX_STD=14 -DCLI_SINGLE_FILE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build . -- -j2
ctest --output-on-failure
fi
if [ -n "$CLI_CXX_STD" ] && [ "$CLI_CXX_STD" -ge "17" ] ; then
cmake .. -DCLI_CXX_STD=17 -DCLI_SINGLE_FILE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build . -- -j2
ctest --output-on-failure
fi
set +evx

View File

@ -1,55 +1,54 @@
language: cpp language: cpp
sudo: false sudo: false
dist: trusty dist: trusty
# Exclude ghpages,
# but even better, don't build branch and PR, just PR
branches: branches:
exclude: only:
- gh-pages - master
cache: cache:
ccache: true
apt: true
directories: directories:
- "${TRAVIS_BUILD_DIR}/deps/cmake"
- "${TRAVIS_BUILD_DIR}/deps/doxygen" - "${TRAVIS_BUILD_DIR}/deps/doxygen"
matrix: matrix:
include: include:
# Default clang
- compiler: clang - compiler: clang
addons:
apt: # Check style/tidy
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
packages:
- clang++-5.0
env:
- COMPILER=5.0
- CLI_CXX_STD=14
- compiler: clang - compiler: clang
addons:
apt:
packages:
- clang-3.9
- clang-format-3.9
- clang-tidy-3.9
env:
- COMPILER=3.9
- CLI_CXX_STD=14
script: script:
- cd "${TRAVIS_BUILD_DIR}" - cd "${TRAVIS_BUILD_DIR}"
- scripts/check_style.sh - scripts/check_style.sh
- ".ci/check_tidy.sh" - .ci/check_tidy.sh
# Docs and clang 3.5
- compiler: clang - compiler: clang
env:
- DEPLOYMAT=yes
addons: addons:
apt: apt:
packages: packages:
- clang-3.5 - clang-3.5
env: install:
- COMPILER=3.5 - export CC=clang-3.5
- DEPLOY_MAT=yes - export CXX=clang++-3.5
- DOXYFILE=$TRAVIS_BUILD_DIR/docs/Doxyfile script:
- .ci/make_and_test.sh 11
after_success: after_success:
- export DOXYFILE=$TRAVIS_BUILD_DIR/docs/Doxyfile
- | - |
if [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ] if [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]
then then
echo "Updating docs" && cd $TRAVIS_BUILD_DIR && .ci/build_docs.sh . .ci/build_doxygen.sh
.ci/build_docs.sh
fi fi
# GCC 6 and Coverage
- compiler: gcc - compiler: gcc
addons: addons:
apt: apt:
@ -59,24 +58,27 @@ matrix:
- g++-6 - g++-6
- curl - curl
- lcov - lcov
env: install:
- COMPILER=6 - export CC=gcc-6
- CLI_CXX_STD=14 - export CXX=g++-6
before_install:
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- cd $TRAVIS_BUILD_DIR - cd $TRAVIS_BUILD_DIR
- ". .ci/build_lcov.sh" - ". .ci/build_lcov.sh"
- ".ci/run_codecov.sh" - ".ci/run_codecov.sh"
# GCC 4.7 and Conan
- compiler: gcc - compiler: gcc
addons: addons:
apt: apt:
packages: packages:
- g++-4.7 - g++-4.7
env: install:
- COMPILER=4.7 - export CC=gcc-4.7
before_install: - export CXX=g++-4.7
- python -m pip install --user conan - python -m pip install --user conan
- conan user - conan user
script:
- .ci/make_and_test.sh 11
after_success: after_success:
- conan create . CLIUtils/stable - conan create . CLIUtils/stable
- | - |
@ -86,33 +88,28 @@ matrix:
conan user -p ${BINFROG_API_KEY} -r origin henryiii conan user -p ${BINFROG_API_KEY} -r origin henryiii
conan upload "*" -c -r origin --all conan upload "*" -c -r origin --all
fi fi
# macOS and clang
- os: osx - os: osx
compiler: clang compiler: clang
before_install: install:
- brew update - brew update
- echo 'brew "python"' > Brewfile - echo 'brew "python"' > Brewfile
- echo 'brew "conan"' >> Brewfile - echo 'brew "conan"' >> Brewfile
- echo 'brew "ccache"' >> Brewfile
- brew bundle - brew bundle
- python -m ensurepip --user - python -m ensurepip --user
- conan user - conan user
after_success: after_success:
- conan create . CLIUtils/CLI11 - conan create . CLIUtils/CLI11
install:
- python -c 'import sys; print(sys.version_info[:])' install: skip
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd $TRAVIS_BUILD_DIR && . .ci/prepare_altern.sh
; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ] ; then cd $TRAVIS_BUILD_DIR && . .ci/build_cmake.sh
; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ] ; then cd $TRAVIS_BUILD_DIR && . .ci/build_doxygen.sh
; fi
- cd "${DEPS_DIR}"
- if [ "$(python -c 'import sys; print(sys.version_info[0])')" = "2" ] ; then python
-m pip install --user pathlib ; fi
- cmake --version
script: script:
- cd "${TRAVIS_BUILD_DIR}" - .ci/make_and_test.sh 11
- ".ci/travis.sh" - .ci/make_and_test.sh 14
deploy: deploy:
provider: releases provider: releases
api_key: api_key:

View File

@ -1,7 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# Requires pathlib on python 2
from __future__ import print_function, unicode_literals from __future__ import print_function, unicode_literals
import os import os