From 0cc169ecd668eeccfa99d81032f366a7d7265d02 Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Sat, 11 Sep 2021 18:18:54 +0300 Subject: [PATCH] modernize CI setup --- .github/workflows/ci.yml | 19 ------ .travis.yml | 144 --------------------------------------- README.md | 4 +- 3 files changed, 2 insertions(+), 165 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 040133a..9b436e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,13 +17,6 @@ jobs: fail-fast: false matrix: include: - - toolset: gcc-4.8 - cxxstd: "03,11" - os: ubuntu-16.04 - install: g++-4.8 - cxxflags: "cxxflags=--coverage" - linkflags: "linkflags=--coverage" - gcov_tool: "gcov-4.8" - toolset: gcc-7 cxxstd: "03,11,14,17" os: ubuntu-18.04 @@ -45,13 +38,6 @@ jobs: cxxstd: "03,11,14,17" os: ubuntu-18.04 install: clang-7 - - toolset: clang - compiler: clang++-9 - cxxstd: "03,11,14,17,2a" - os: ubuntu-20.04 - cxxflags: "cxxflags=--coverage" - linkflags: "linkflags=--coverage" - gcov_tool: "llvm-cov-9 gcov" - toolset: clang compiler: clang++-10 cxxstd: "03,11,14,17,2a" @@ -96,11 +82,6 @@ jobs: ./b2 -d0 headers ./b2 -j4 variant=debug tools/inspect/build - - name: Create user-config.jam - if: matrix.compiler - run: | - echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam - - name: Run tests run: | cd ../boost-root diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0d5982d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,144 +0,0 @@ -# Use, modification, and distribution are -# subject to the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# -# Copyright Antony Polukhin 2014-2021. - -# -# See https://svn.boost.org/trac/boost/wiki/TravisCoverals for description of this file -# and how it can be used with Boost libraries. -# -# File revision #10 - -language: cpp -os: linux - -# `--coverage` flags required to generate coverage info for Coveralls -matrix: - include: - - env: B2_ARGS='cxxstd=98,03,11,14,1z toolset=gcc-8 cxxflags="--coverage -fsanitize=address,leak,undefined -fno-sanitize-recover=undefined -DBOOST_TRAVISCI_BUILD" linkflags="--coverage -lasan -lubsan" "testing.launcher=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5"' GCOVTOOL='gcov-8' - name: "GCC-8" - sudo: required # Required by leak sanitizer - addons: - apt: - sources: ubuntu-toolchain-r-test - packages: g++-8 - - - env: B2_ARGS='cxxstd=98,0x toolset=gcc-4.6 cxxflags="--coverage -DBOOST_TRAVISCI_BUILD" linkflags="--coverage"' GCOVTOOL='gcov-4.6' - name: "GCC-4.6" - addons: - apt: - sources: ubuntu-toolchain-r-test - packages: g++-4.6 - - - env: B2_ARGS='cxxstd=98,03,11,14,1z toolset=clang-8 cxxflags="--coverage -fsanitize=address,leak,undefined -fno-sanitize-recover=undefined -DBOOST_TRAVISCI_BUILD" linkflags="--coverage -fsanitize=address,leak,undefined"' GCOVTOOL='gcov_for_clang.sh' - name: "Clang-8" - sudo: required # Required by leak sanitizer - addons: - apt: - sources: llvm-toolchain-trusty-8 - packages: - - clang-8 - - g++ # for default libstdc++ - - # Sanitizers disabled for this toolset as they started causing link troubles: - # hidden symbol `_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE11__recommendEm' isn't defined - - env: B2_ARGS='cxxstd=03,11,14 toolset=clang-libc++ cxxflags="--coverage -DBOOST_TRAVISCI_BUILD" linkflags="--coverage"' GCOVTOOL='gcov_for_clang.sh' - name: "Clang-3.8, libc++" - addons: - apt: - packages: libc++-dev - -############################################################################################################### -# From this point and below code is same for all the Boost libs -############################################################################################################### - -# Installing additional tools -addons: - apt: - sources: git-core - packages: - - git - - python-yaml - -before_install: - # Autodetect Boost branch by using the following code: - BOOST_BRANCH=$TRAVIS_BRANCH - # or just directly specify it - - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true - - # Files, which coverage results must be ignored (files from other projects). - # Example: - IGNORE_COVERAGE='*/boost/progress.hpp */filesystem/src/*' - - IGNORE_COVERAGE='' - - # boost-local/libs/ folder to put this library into. This may be useful, if you're for example running Travis - # from `Boost.DLL` repo while Boost already has `dll` and with to replace `dll` with content of`Boost.DLL`. - # - # Otherwise just leave the default value - BOOST_LIBS_FOLDER=$(basename $TRAVIS_BUILD_DIR) - - BOOST_LIBS_FOLDER=$(basename $TRAVIS_BUILD_DIR) - - # Global options for sanitizers - - UBSAN_OPTIONS=print_stacktrace=1 - - LSAN_OPTIONS=verbosity=1:log_threads=1 - # Cloning minimal set of Boost libraries - - BOOST=$HOME/boost-local - - git clone -b $BOOST_BRANCH --depth 10 https://github.com/boostorg/boost.git $BOOST - - cd $BOOST - - git submodule update --init --depth 10 --jobs 2 tools/build tools/boostdep tools/inspect libs/filesystem - - python tools/boostdep/depinst/depinst.py --git_args "--depth 10 --jobs 2" $BOOST/libs/filesystem - - # Replacing Boost module with this project and installing Boost dependencies - - echo "Testing $BOOST/libs/$BOOST_LIBS_FOLDER moved from $TRAVIS_BUILD_DIR, branch $BOOST_BRANCH" - - rm -rf $BOOST/libs/$BOOST_LIBS_FOLDER || true - - mv $TRAVIS_BUILD_DIR $BOOST/libs/$BOOST_LIBS_FOLDER - - python tools/boostdep/depinst/depinst.py --git_args "--depth 10 --jobs 2" $BOOST_LIBS_FOLDER - - git status - - # Adding missing toolsets and preparing Boost headers - - ./bootstrap.sh - - ./b2 headers - - ./b2 -j4 variant=debug tools/inspect/build - - |- - echo "using gcc ;" >> ~/user-config.jam - echo "using clang ;" >> ~/user-config.jam - echo "using clang : 3.8 : clang++-3.8 ;" >> ~/user-config.jam - echo "using clang : 4 : clang++-4.0 ;" >> ~/user-config.jam - echo "using clang : 5 : clang++-5.0 ;" >> ~/user-config.jam - echo "using clang : 6 : clang++-6.0 ;" >> ~/user-config.jam - echo "using clang : 7 : clang++-7.0 ;" >> ~/user-config.jam - echo "using clang : 8 : clang++-8 ;" >> ~/user-config.jam - echo "using clang : libc++ : clang++-libc++ ;" >> ~/user-config.jam - - cd $BOOST/libs/$BOOST_LIBS_FOLDER/test/ - -script: - - sh -c "../../../b2 -j2 $B2_ARGS" - - ../../../dist/bin/inspect .. - -after_success: - - exit 0 # We gather coverage from GithubActions - - # Copying Coveralls data to a separate folder - - mkdir -p $TRAVIS_BUILD_DIR/coverals - - wget https://github.com/linux-test-project/lcov/archive/v1.15.zip - - unzip v1.15.zip - - LCOV="`pwd`/lcov-1.15/bin/lcov --gcov-tool $GCOVTOOL" - - mkdir -p ~/.local/bin - - echo -e '#!/bin/bash\nexec llvm-cov gcov "$@"' > ~/.local/bin/gcov_for_clang.sh - - chmod 755 ~/.local/bin/gcov_for_clang.sh - - # Preparing Coveralls data by changind data format to a readable one - - echo "$LCOV --directory $BOOST/bin.v2/libs/$BOOST_LIBS_FOLDER --base-directory `pwd` --capture --output-file $TRAVIS_BUILD_DIR/coverals/coverage.info" - - $LCOV --directory $BOOST/bin.v2/libs/$BOOST_LIBS_FOLDER --base-directory `pwd` --capture --output-file $TRAVIS_BUILD_DIR/coverals/coverage.info - - # ... erasing /test/ /example/ folder data - - cd $BOOST - - $LCOV --remove $TRAVIS_BUILD_DIR/coverals/coverage.info "/usr*" "*/$BOOST_LIBS_FOLDER/test/*" $IGNORE_COVERAGE "*/$BOOST_LIBS_FOLDER/tests/*" "*/$BOOST_LIBS_FOLDER/examples/*" "*/$BOOST_LIBS_FOLDER/example/*" -o $TRAVIS_BUILD_DIR/coverals/coverage.info - - # ... erasing data that is not related to this project directly - - OTHER_LIBS=`grep "submodule .*" .gitmodules | sed 's/\[submodule\ "\(.*\)"\]/"\*\/boost\/\1\.hpp" "\*\/boost\/\1\/\*"/g'| sed "/\"\*\/boost\/$BOOST_LIBS_FOLDER\/\*\"/d" | sed ':a;N;$!ba;s/\n/ /g'` - - echo $OTHER_LIBS - - eval "$LCOV --remove $TRAVIS_BUILD_DIR/coverals/coverage.info $OTHER_LIBS -o $TRAVIS_BUILD_DIR/coverals/coverage.info" - - # Sending data to Coveralls - - cd $TRAVIS_BUILD_DIR - - gem install coveralls-lcov - - coveralls-lcov coverals/coverage.info diff --git a/README.md b/README.md index 96fa7d7..aebd9e8 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ Boost.TypeIndex is a part of the [Boost C++ Libraries](https://github.com/boosto @ | Build | Tests coverage | More info ----------------|-------------- | -------------- |----------- -Develop branch: | [![CI](https://github.com/boostorg/type_index/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/type_index/actions/workflows/ci.yml) [![Build Status](https://travis-ci.org/apolukhin/type_index.svg?branch=develop)](https://travis-ci.org/apolukhin/type_index) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/develop) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=develop)](https://coveralls.io/r/apolukhin/type_index?branch=develop) | [details...](https://www.boost.org/development/tests/develop/developer/type_index.html) -Master branch: | [![CI](https://github.com/boostorg/type_index/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/type_index/actions/workflows/ci.yml) [![Build Status](https://travis-ci.org/apolukhin/type_index.svg?branch=master)](https://travis-ci.org/apolukhin/type_index) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/master) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=master)](https://coveralls.io/r/apolukhin/type_index?branch=master) | [details...](https://www.boost.org/development/tests/master/developer/type_index.html) +Develop branch: | [![CI](https://github.com/boostorg/type_index/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/type_index/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/develop?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/develop) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=develop)](https://coveralls.io/r/apolukhin/type_index?branch=develop) | [details...](https://www.boost.org/development/tests/develop/developer/type_index.html) +Master branch: | [![CI](https://github.com/boostorg/type_index/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/type_index/actions/workflows/ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/197a5imq10dqx6r8/branch/master?svg=true)](https://ci.appveyor.com/project/apolukhin/type-index/branch/master) | [![Coverage Status](https://coveralls.io/repos/apolukhin/type_index/badge.png?branch=master)](https://coveralls.io/r/apolukhin/type_index?branch=master) | [details...](https://www.boost.org/development/tests/master/developer/type_index.html) [Latest developer documentation](https://www.boost.org/doc/libs/develop/doc/html/boost_typeindex.html)