diff --git a/.drone.star b/.drone.star index cd2bfd2f..ea6e75da 100644 --- a/.drone.star +++ b/.drone.star @@ -4,124 +4,54 @@ # # Copyright Rene Rivera 2020. -# Configuration for https://cloud.drone.io/. - # For Drone CI we use the Starlark scripting language to reduce duplication. # As the yaml syntax for Drone CI is rather limited. +# +# +globalenv={'B2_CI_VERSION': '1', 'B2_VARIANT': 'release'} +linuxglobalimage="cppalliance/droneubuntu1804:1" +windowsglobalimage="cppalliance/dronevs2019" def main(ctx): - addon_base = { "apt": { "packages": [ "software-properties-common", "libffi-dev", "libstdc++6", "binutils-gold", "gdb" ] } } - return [ - linux_cxx("GCC 6.0, Debug + Coverage", "g++-6", packages=" ".join(addon_base["apt"]["packages"]) + " g++-6 libssl-dev", image="ubuntu:16.04", buildtype="boost", environment={ "VARIANT": "beast_coverage", "TOOLSET": "gcc", "COMPILER": "g++-6", "CXXSTD": "14", "DRONE_BEFORE_INSTALL" : "beast_coverage" }, stepenvironment={"CODECOV_TOKEN": {"from_secret": "codecov_token"}}, privileged=True), - # removed until there is a resolution for the global clang-7 outage - # linux_cxx("Default clang++ with libc++", "clang++-libc++", packages=" ".join(addon_base["apt"]["packages"]), image="ubuntu:16.04", buildtype="boost", environment={ "B2_TOOLSET": "clang-7", "B2_CXXSTD": "17,2a", "VARIANT": "debug", "TOOLSET": "clang", "COMPILER": "clang++-libc++", "CXXSTD": "11", "CXX_FLAGS": "-stdlib=libc++ -stdlib=libc++", "TRAVISCLANG" : "yes" }), - linux_cxx("GCC Valgrind", "g++", packages=" ".join(addon_base["apt"]["packages"]) + " g++-7 libssl-dev valgrind", image="ubuntu:20.04", buildtype="boost", environment={ "VARIANT": "beast_valgrind", "TOOLSET": "gcc", "COMPILER": "g++", "CXXSTD": "11" }), - linux_cxx("Default g++", "g++", packages=" ".join(addon_base["apt"]["packages"]), image="ubuntu:16.04", buildtype="boost", environment={ "VARIANT": "release", "TOOLSET": "gcc", "COMPILER": "g++", "CXXSTD": "11" }), - linux_cxx("GCC 8, C++17, libstdc++, release", "g++-8", packages=" ".join(addon_base["apt"]["packages"]) + " g++-8", image="ubuntu:16.04", buildtype="boost", environment={ "VARIANT": "release", "TOOLSET": "gcc", "COMPILER": "g++-8", "CXXSTD" : "17" }), - linux_cxx("Clang 3.8, UBasan", "clang++-3.8", packages=" ".join(addon_base["apt"]["packages"]) + " clang-3.8 libssl-dev", llvm_os="precise", llvm_ver="3.8", image="ubuntu:16.04", buildtype="boost", environment={"VARIANT": "beast_ubasan", "TOOLSET": "clang", "COMPILER": "clang++-3.8", "CXXSTD": "11", "UBSAN_OPTIONS": 'print_stacktrace=1', "DRONE_BEFORE_INSTALL": "UBasan" }), - linux_cxx("docs", "", packages="docbook docbook-xml docbook-xsl xsltproc libsaxonhe-java default-jre-headless flex libfl-dev bison unzip", image="ubuntu:16.04", buildtype="docs", environment={"COMMENT": "docs"}), - windows_cxx("msvc-14.1", "", image="cppalliance/dronevs2017", buildtype="boost", environment={ "VARIANT": "release", "TOOLSET": "msvc-14.1", "CXXSTD": "17", "DEFINE" : "BOOST_BEAST_USE_STD_STRING_VIEW", "ADDRESS_MODEL": "64"}), - windows_cxx("msvc-14.2", "", image="cppalliance/dronevs2019", buildtype="boost", environment={ "VARIANT": "release", "TOOLSET": "msvc-14.2", "CXXSTD": "17", "DEFINE" : "BOOST_BEAST_USE_STD_STRING_VIEW", "ADDRESS_MODEL": "64"}), - + # First, a set of jobs based on the earlier .travis.yml configuration: + linux_cxx("GCC 10, Debug + Coverage", "g++-10", packages="g++-10 libssl-dev libffi-dev binutils-gold gdb mlocate", image="cppalliance/droneubuntu2004:1", buildtype="boost_v1", buildscript="drone", environment={"GCOV": "gcov-10", "LCOV_VERSION": "1.15", "VARIANT": "beast_coverage", "TOOLSET": "gcc", "COMPILER": "g++-10", "CXXSTD": "14", "DRONE_BEFORE_INSTALL" : "beast_coverage", "CODECOV_TOKEN": {"from_secret": "codecov_token"}}, globalenv=globalenv, privileged=True), + linux_cxx("Default clang++ with libc++", "clang++-libc++", packages="libc++-dev mlocate", image="cppalliance/droneubuntu1604:1", buildtype="boost_v1", buildscript="drone", environment={ "B2_TOOLSET": "clang-7", "B2_CXXSTD": "17,2a", "VARIANT": "debug", "TOOLSET": "clang", "COMPILER": "clang++-libc++", "CXXSTD": "11", "CXX_FLAGS": "-stdlib=libc++ -stdlib=libc++", "TRAVISCLANG" : "yes" }, globalenv=globalenv), + linux_cxx("GCC Valgrind", "g++", packages="g++-7 libssl-dev valgrind mlocate", image="cppalliance/droneubuntu2004:1", buildtype="boost_v1", buildscript="drone", environment={ "VARIANT": "beast_valgrind", "TOOLSET": "gcc", "COMPILER": "g++", "CXXSTD": "11" }, globalenv=globalenv), + linux_cxx("Default g++", "g++", packages="mlocate", image="cppalliance/droneubuntu1604:1", buildtype="boost_v1", buildscript="drone", environment={ "VARIANT": "release", "TOOLSET": "gcc", "COMPILER": "g++", "CXXSTD": "11" }, globalenv=globalenv), + linux_cxx("GCC 8, C++17, libstdc++, release", "g++-8", packages="g++-8 mlocate", image="cppalliance/droneubuntu1604:1", buildtype="boost_v1", buildscript="drone", environment={ "VARIANT": "release", "TOOLSET": "gcc", "COMPILER": "g++-8", "CXXSTD" : "17" }, globalenv=globalenv), + linux_cxx("Clang 3.8, UBasan", "clang++-3.8", packages="clang-3.8 libssl-dev mlocate", llvm_os="precise", llvm_ver="3.8", image="cppalliance/droneubuntu1604:1", buildtype="boost_v1", buildscript="drone", environment={"VARIANT": "beast_ubasan", "TOOLSET": "clang", "COMPILER": "clang++-3.8", "CXXSTD": "11", "UBSAN_OPTIONS": 'print_stacktrace=1', "DRONE_BEFORE_INSTALL": "UBasan" }, globalenv=globalenv), + linux_cxx("docs", "", packages="docbook docbook-xml docbook-xsl xsltproc libsaxonhe-java default-jre-headless flex libfl-dev bison unzip rsync mlocate", image="cppalliance/droneubuntu1804:1", buildtype="docs", buildscript="drone", environment={"COMMENT": "docs"}, globalenv=globalenv), + # Next, a standard list of tests from boost-ci: + linux_cxx("asan", "g++-8", packages="g++-8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'COMMENT': 'asan', 'B2_VARIANT': 'debug', 'B2_TOOLSET': 'gcc-8', 'B2_CXXSTD': '11,14', 'B2_ASAN': '1', 'B2_DEFINES': 'BOOST_NO_STRESS_TEST=1', 'DRONE_EXTRA_PRIVILEGED': 'True', 'DRONE_JOB_UUID': '356a192b79'}, globalenv=globalenv, privileged=True), + linux_cxx("tsan", "g++-8", packages="g++-8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'COMMENT': 'tsan', 'B2_VARIANT': 'debug', 'B2_TOOLSET': 'gcc-8', 'B2_CXXSTD': '11,14', 'B2_TSAN': '1', 'B2_DEFINES': 'BOOST_NO_STRESS_TEST=1', 'DRONE_JOB_UUID': 'da4b9237ba'}, globalenv=globalenv), + linux_cxx("ubsan", "g++-8", packages="g++-8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'COMMENT': 'ubsan', 'B2_VARIANT': 'debug', 'B2_TOOLSET': 'gcc-8', 'B2_CXXSTD': '11,14', 'B2_UBSAN': '1', 'B2_DEFINES': 'BOOST_NO_STRESS_TEST=1', 'B2_LINKFLAGS': '-fuse-ld=gold', 'DRONE_JOB_UUID': '77de68daec'}, globalenv=globalenv), + # a boost-ci based version of codecov. However, codecov has already been run, above. + # linux_cxx("codecov", "g++-8", packages="g++-8", buildtype="codecov", buildscript="drone", image=linuxglobalimage, environment={'COMMENT': 'codecov.io', 'B2_CXXSTD': '11', 'B2_TOOLSET': 'gcc-8', 'B2_DEFINES': 'BOOST_NO_STRESS_TEST=1', 'DRONE_JOB_UUID': 'b6589fc6ab', "CODECOV_TOKEN": {"from_secret": "codecov_token"}}, globalenv=globalenv), + # gcc 4.8 is failing: + # # linux_cxx("gcc 4.8", "g++-4.8", packages="g++-4.8", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1604:1", environment={'B2_TOOLSET': 'gcc-4.8', 'B2_CXXSTD': '11', 'DRONE_JOB_UUID': 'ac3478d69a'}, globalenv=globalenv), + linux_cxx("gcc 5", "g++-5", packages="g++-5", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'gcc-5', 'B2_CXXSTD': '11', 'DRONE_JOB_UUID': '902ba3cda1'}, globalenv=globalenv), + linux_cxx("gcc 6", "g++-6", packages="g++-6", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'gcc-6', 'B2_CXXSTD': '11,14', 'DRONE_JOB_UUID': 'fe5dbbcea5'}, globalenv=globalenv), + linux_cxx("gcc 7", "g++-7", packages="g++-7", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'gcc-7', 'B2_CXXSTD': '14,17', 'DRONE_JOB_UUID': '0ade7c2cf9'}, globalenv=globalenv), + linux_cxx("gcc 8", "g++-8", packages="g++-8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'gcc-8', 'B2_CXXSTD': '17,2a', 'DRONE_JOB_UUID': 'b1d5781111'}, globalenv=globalenv), + linux_cxx("gcc 9", "g++-9", packages="g++-9", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'gcc-9', 'B2_CXXSTD': '17,2a', 'DRONE_JOB_UUID': '17ba079149'}, globalenv=globalenv), + linux_cxx("gcc 10", "g++-10", packages="g++-10", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu2004:1", environment={'B2_TOOLSET': 'gcc-10', 'B2_CXXSTD': '17,2a', 'DRONE_JOB_UUID': '17ba079159'}, globalenv=globalenv), + linux_cxx("gcc 11", "g++-11", packages="g++-11", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu2004:1", environment={'B2_TOOLSET': 'gcc-11', 'B2_CXXSTD': '17,2a', 'DRONE_JOB_UUID': '17ba079169'}, globalenv=globalenv), + linux_cxx("clang 3.8", "clang++-3.8", packages="clang-3.8", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1604:1", environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-3.8', 'B2_CXXSTD': '11', 'DRONE_JOB_UUID': '7b52009b64'}, globalenv=globalenv), + linux_cxx("clang 4.0", "clang++-4.0", packages="clang-4.0 libstdc++-6-dev", llvm_os="xenial", llvm_ver="4.0", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1604:1", environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-4.0', 'B2_CXXSTD': '11,14', 'DRONE_JOB_UUID': 'bd307a3ec3'}, globalenv=globalenv), + linux_cxx("clang 5.0", "clang++-5.0", packages="clang-5.0 libstdc++-7-dev", llvm_os="bionic", llvm_ver="5.0", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-5.0', 'B2_CXXSTD': '11,14', 'DRONE_JOB_UUID': 'fa35e19212'}, globalenv=globalenv), + linux_cxx("clang 6.0", "clang++-6.0", packages="clang-6.0 libc6-dbg libc++-dev libstdc++-8-dev", llvm_os="bionic", llvm_ver="6.0", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-6.0', 'B2_CXXSTD': '14,17', 'DRONE_JOB_UUID': 'f1abd67035'}, globalenv=globalenv), + linux_cxx("clang 7", "clang++-7", packages="clang-7 libc6-dbg libc++-dev libstdc++-8-dev", llvm_os="bionic", llvm_ver="7", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-7', 'B2_CXXSTD': '17,2a', 'DRONE_JOB_UUID': '1574bddb75'}, globalenv=globalenv), + linux_cxx("clang 8", "clang++-8", packages="clang-8 libc6-dbg libc++-dev libstdc++-8-dev", llvm_os="bionic", llvm_ver="8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-8', 'B2_CXXSTD': '17,2a', 'DRONE_JOB_UUID': '0716d9708d'}, globalenv=globalenv), + linux_cxx("clang 9", "clang++-9", packages="clang-9 libc6-dbg libc++-dev libstdc++-9-dev", llvm_os="bionic", llvm_ver="9", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-9', 'B2_CXXSTD': '11,14,17,2a', 'DRONE_JOB_UUID': '9e6a55b6b4'}, globalenv=globalenv), + linux_cxx("clang 10", "clang++-10", packages="clang-10 libc6-dbg libc++-dev libstdc++-9-dev", llvm_os="focal", llvm_ver="10", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu2004:1", environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'B2_CXXSTD': '11,14,17,2a', 'DRONE_JOB_UUID': '9e6a55b6c4'}, globalenv=globalenv), + linux_cxx("clang 11", "clang++-11", packages="clang-11 libc6-dbg libc++-dev libstdc++-9-dev", llvm_os="focal", llvm_ver="11", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu2004:1", environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-11', 'B2_CXXSTD': '11,14,17,2a', 'DRONE_JOB_UUID': '9e6a55b6b4'}, globalenv=globalenv), + linux_cxx("clang 6.0 libc++", "clang++-6.0", packages="clang-6.0 libc6-dbg libc++-dev libstdc++-8-dev libc++abi-dev", llvm_os="bionic", llvm_ver="6.0", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'B2_TOOLSET': 'clang', 'COMPILER': 'clang++-6.0', 'B2_CXXSTD': '11,14', 'B2_STDLIB': 'libc++', 'DRONE_JOB_UUID': 'b3f0c7f6bb'}, globalenv=globalenv), + osx_cxx("clang", "g++", packages="", buildtype="boost", buildscript="drone", environment={'B2_TOOLSET': 'clang', 'B2_CXXSTD': '11,17', 'DRONE_JOB_UUID': '91032ad7bb'}, globalenv=globalenv), + linux_cxx("coverity", "g++", packages="", buildtype="coverity", buildscript="drone", image=linuxglobalimage, environment={'COMMENT': 'Coverity Scan', 'B2_TOOLSET': 'clang', 'DRONE_JOB_UUID': '472b07b9fc'}, globalenv=globalenv), + windows_cxx("msvc-14.1", "", image="cppalliance/dronevs2017", buildtype="boost", buildscript="drone", environment={ "VARIANT": "release", "TOOLSET": "msvc-14.1", "CXXSTD": "17", "DEFINE" : "BOOST_BEAST_USE_STD_STRING_VIEW", "ADDRESS_MODEL": "64"}), + windows_cxx("msvc-14.2", "", image="cppalliance/dronevs2019", buildtype="boost", buildscript="drone", environment={ "VARIANT": "release", "TOOLSET": "msvc-14.2", "CXXSTD": "17", "DEFINE" : "BOOST_BEAST_USE_STD_STRING_VIEW", "ADDRESS_MODEL": "64"}), ] -# Generate pipeline for Linux platform compilers. -def linux_cxx(name, cxx, cxxflags="", packages="", llvm_os="", llvm_ver="", arch="amd64", image="ubuntu:16.04", buildtype="boost", environment={}, stepenvironment={}, privileged=False): - environment_global = { - "CXX": cxx, - "CXXFLAGS": cxxflags, - "PACKAGES": packages, - "LLVM_OS": llvm_os, - "LLVM_VER": llvm_ver, - "B2_CI_VERSION": 1, - # see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties - # - B2_ADDRESS_MODEL=64,32 - # - B2_LINK=shared,static - # - B2_THREADING=threading=multi,single - "B2_VARIANT" : "release", - "B2_FLAGS" : "warnings=extra warnings-as-errors=on" - } - environment_current=environment_global - environment_current.update(environment) - - return { - "name": "Linux %s" % name, - "kind": "pipeline", - "type": "docker", - "trigger": { "branch": [ "master","develop", "drone", "bugfix/*", "feature/*", "fix/*", "pr/*" ] }, - "platform": { - "os": "linux", - "arch": arch - }, - # Create env vars per generation arguments. - "environment": environment_current, - "steps": [ - { - "name": "Everything", - "image": image, - "privileged": privileged, - "environment": stepenvironment, - "commands": [ - - "echo '==================================> SETUP'", - "uname -a", - "apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -y install tzdata && apt-get -o Acquire::Retries=3 install -y sudo software-properties-common wget curl apt-transport-https git cmake make apt-file sudo libssl-dev git build-essential autotools-dev autoconf && rm -rf /var/lib/apt/lists/*", - "for i in {1..3}; do apt-add-repository ppa:git-core/ppa && break || sleep 2; done", - "apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 -y install git", - "echo '==================================> PACKAGES'", - "./.drone/linux-cxx-install.sh", - - "echo '==================================> INSTALL AND COMPILE'", - "./.drone/%s-script.sh" % buildtype, - ] - } - ] - } - -def windows_cxx(name, cxx="", cxxflags="", packages="", llvm_os="", llvm_ver="", arch="amd64", image="cppalliance/dronevs2019", buildtype="boost", environment={}, privileged=False): - environment_global = { - "CXX": cxx, - "CXXFLAGS": cxxflags, - "PACKAGES": packages, - "LLVM_OS": llvm_os, - "LLVM_VER": llvm_ver, - "B2_CI_VERSION": 1, - # see: http://www.boost.org/build/doc/html/bbv2/overview/invocation.html#bbv2.overview.invocation.properties - # - B2_ADDRESS_MODEL=64,32 - # - B2_LINK=shared,static - # - B2_THREADING=threading=multi,single - "B2_VARIANT" : "release", - "B2_FLAGS" : "warnings=extra warnings-as-errors=on" - } - environment_current=environment_global - environment_current.update(environment) - - return { - "name": "Windows %s" % name, - "kind": "pipeline", - "type": "docker", - "trigger": { "branch": [ "master","develop", "drone", "bugfix/*", "feature/*", "fix/*", "pr/*" ] }, - "platform": { - "os": "windows", - "arch": arch - }, - # Create env vars per generation arguments. - "environment": environment_current, - "clone": { "depth": 5 }, - "steps": [ - { - "name": "Everything", - "image": image, - "privileged": privileged, - "commands": [ - "echo '==================================> SETUP'", - "echo '==================================> PACKAGES'", - '.drone/windows-msvc-install.bat', - - "echo '==================================> INSTALL AND COMPILE'", - '.drone/%s-script.bat' % buildtype, - ] - } - ] - } +# from https://github.com/boostorg/boost-ci +load("@boost_ci//ci/drone/:functions.star", "linux_cxx","windows_cxx","osx_cxx","freebsd_cxx") diff --git a/.drone/README.md b/.drone/README.md deleted file mode 100644 index de76c5f8..00000000 --- a/.drone/README.md +++ /dev/null @@ -1,3 +0,0 @@ - -.drone.star and other drone scripts originally based on https://github.com/bfgroup/ci_playground - diff --git a/.drone/boost-script.sh b/.drone/boost-script.sh deleted file mode 100755 index 066d9282..00000000 --- a/.drone/boost-script.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -set -ex - -export TRAVIS_BUILD_DIR=$(pwd) -export TRAVIS_BRANCH=$DRONE_BRANCH - -echo '==================================> BEFORE_INSTALL' - -if [ "$DRONE_BEFORE_INSTALL" = "beast_coverage" ]; then - pip install --user https://github.com/codecov/codecov-python/archive/master.zip - wget http://downloads.sourceforge.net/ltp/lcov-1.14.tar.gz - tar -xvf lcov-1.14.tar.gz - cd lcov-1.14 - make install - cd .. -fi - -if [ "$DRONE_BEFORE_INSTALL" = "UBasan" ]; then - export PATH=$PWD/llvm-$LLVM_VERSION/bin:$PATH -fi - -echo '==================================> INSTALL' - -cd .. -$TRAVIS_BUILD_DIR/tools/get-boost.sh $TRAVIS_BRANCH $TRAVIS_BUILD_DIR -cd boost-root -export PATH=$PATH:"`pwd`" -export BOOST_ROOT=$(pwd) -./bootstrap.sh -cp libs/beast/tools/user-config.jam ~/user-config.jam -echo "using $TOOLSET : : $COMPILER : $CXX_FLAGS ;" >> ~/user-config.jam - -echo '==================================> COMPILE' - -cd ../boost-root -libs/beast/tools/retry.sh libs/beast/tools/build-and-test.sh - diff --git a/.drone/docs-script.sh b/.drone/docs-script.sh deleted file mode 100755 index cd7ef3c3..00000000 --- a/.drone/docs-script.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -set -ex - -export BOOST_CI_SRC_FOLDER=$(pwd) - -echo '==================================> INSTALL' -pwd -cd .. -mkdir -p $HOME/cache && cd $HOME/cache -if [ ! -d doxygen ]; then git clone -b 'Release_1_8_15' --depth 1 https://github.com/doxygen/doxygen.git && echo "not-cached" ; else echo "cached" ; fi -cd doxygen -cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release -cd build -sudo make install -cd ../.. -if [ ! -f saxonhe.zip ]; then wget -O saxonhe.zip https://sourceforge.net/projects/saxon/files/Saxon-HE/9.9/SaxonHE9-9-1-4J.zip/download && echo "not-cached" ; else echo "cached" ; fi -unzip -o saxonhe.zip -sudo rm /usr/share/java/Saxon-HE.jar -sudo cp saxon9he.jar /usr/share/java/Saxon-HE.jar -cd .. -BOOST_BRANCH=develop && [ "$DRONE_BRANCH" == "master" ] && BOOST_BRANCH=master || true -git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root --depth 1 -cd boost-root -export BOOST_ROOT=$(pwd) -git submodule update --init libs/context -git submodule update --init tools/boostbook -git submodule update --init tools/boostdep -git submodule update --init tools/docca -git submodule update --init tools/quickbook -rsync -av $BOOST_CI_SRC_FOLDER/ libs/json -python tools/boostdep/depinst/depinst.py ../tools/quickbook -./bootstrap.sh -./b2 headers - -echo '==================================> COMPILE' - -echo "using doxygen ; using boostbook ; using saxonhe ;" > tools/build/src/user-config.jam -./b2 -j3 libs/json/doc//boostrelease diff --git a/.drone/boost-script.bat b/.drone/drone.bat similarity index 83% rename from .drone/boost-script.bat rename to .drone/drone.bat index bc1d2931..deca8ea5 100755 --- a/.drone/boost-script.bat +++ b/.drone/drone.bat @@ -2,6 +2,8 @@ @ECHO ON setlocal enabledelayedexpansion +if "%DRONE_JOB_BUILDTYPE%" == "boost" ( + echo "============> INSTALL" SET DRONE_BUILD_DIR=%CD: =% @@ -12,7 +14,7 @@ SET BOOST_BRANCH=develop IF "%DRONE_BRANCH%" == "master" SET BOOST_BRANCH=master cp tools\user-config.jam %USERPROFILE%\user-config.jam cd .. -SET GET_BOOST=%DRONE_BUILD_DIR%\tools\get-boost.sh +SET GET_BOOST=!DRONE_BUILD_DIR!\tools\get-boost.sh bash -c "$GET_BOOST $DRONE_BRANCH $DRONE_BUILD_DIR" cd boost-root call bootstrap.bat @@ -22,14 +24,16 @@ echo "============> SCRIPT" echo "Running tests" b2 --debug-configuration variant=%VARIANT% cxxstd=%CXXSTD% define=%DEFINE% address-model=%ADDRESS_MODEL% toolset=%TOOLSET% --verbose-test libs/beast/test -j3 -if %errorlevel% neq 0 exit /b %errorlevel% +if !errorlevel! neq 0 exit /b !errorlevel! echo "Running libs/beast/example" b2 --debug-configuration variant=%VARIANT% cxxstd=%CXXSTD% define=%DEFINE% address-model=%ADDRESS_MODEL% toolset=%TOOLSET% libs/beast/example -j3 -if %errorlevel% neq 0 exit /b %errorlevel% +if !errorlevel! neq 0 exit /b !errorlevel! echo "Running run-fat-tests" b2 --debug-configuration variant=%VARIANT% cxxstd=%CXXSTD% define=%DEFINE% address-model=%ADDRESS_MODEL% toolset=%TOOLSET% --verbose-test libs/beast/test//run-fat-tests -j3 -if %errorlevel% neq 0 exit /b %errorlevel% +if !errorlevel! neq 0 exit /b !errorlevel! echo "============> COMPLETED" + +) diff --git a/.drone/drone.sh b/.drone/drone.sh new file mode 100755 index 00000000..8c0ae6e4 --- /dev/null +++ b/.drone/drone.sh @@ -0,0 +1,186 @@ +#!/bin/bash + +# Copyright 2020 Rene Rivera, Sam Darwin +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE.txt or copy at http://boost.org/LICENSE_1_0.txt) + +set -xe + +export DRONE_BUILD_DIR=$(pwd) +export VCS_COMMIT_ID=$DRONE_COMMIT +export GIT_COMMIT=$DRONE_COMMIT +export REPO_NAME=$DRONE_REPO +export USER=$(whoami) +export CC=${CC:-gcc} +export PATH=~/.local/bin:/usr/local/bin:$PATH +export TRAVIS_BUILD_DIR=$(pwd) +export TRAVIS_BRANCH=$DRONE_BRANCH +export TRAVIS_EVENT_TYPE=$DRONE_BUILD_EVENT + +common_install () { + git clone https://github.com/boostorg/boost-ci.git boost-ci-cloned --depth 1 + cp -prf boost-ci-cloned/ci . + rm -rf boost-ci-cloned + +if [ "$TRAVIS_OS_NAME" == "osx" ]; then + unset -f cd + echo "macos - set up homebrew openssl" + export OPENSSL_ROOT=/usr/local/opt/openssl + +cat > ~/user-config.jam </usr/local/opt/openssl/include + debug:/usr/local/opt/openssl/lib + windowsdebug:/usr/local/opt/openssl/debug/lib + release:/usr/local/opt/openssl/lib + ; +EOF + + fi + + export SELF=`basename $REPO_NAME` + export BOOST_CI_TARGET_BRANCH="$TRAVIS_BRANCH" + export BOOST_CI_SRC_FOLDER=$(pwd) + + . ./ci/common_install.sh +} + +if [ "$DRONE_BEFORE_INSTALL" == "beast_coverage" ]; then + LCOV_VERSION=${LCOV_VERSION:-1.14} + pip install --user https://github.com/codecov/codecov-python/archive/master.zip + wget http://downloads.sourceforge.net/ltp/lcov-$LCOV_VERSION.tar.gz + tar -xvf lcov-$LCOV_VERSION.tar.gz + cd lcov-$LCOV_VERSION + make install + cd .. +fi + +if [ "$DRONE_JOB_BUILDTYPE" == "boost" ]; then + +echo '==================================> INSTALL' + +common_install + +echo '==================================> SCRIPT' + +if [ -n "$COMPILER" ] && [ -n "$B2_TOOLSET" ]; then + echo "using $B2_TOOLSET : : $COMPILER ;" >> ~/user-config.jam +fi + +. $BOOST_ROOT/libs/$SELF/ci/build.sh + +elif [ "$DRONE_JOB_BUILDTYPE" == "boost_v1" ]; then + +# version based on the earlier boost.beast .travis.yml configuration + +echo '==================================> INSTALL' + +export SELF=`basename $REPO_NAME` +export BEAST_RETRY=False +export TRAVIS=False + +BOOST_BRANCH=develop +if [ "$DRONE_BRANCH" == "master" ]; then + BOOST_BRANCH=master +fi +echo BOOST_BRANCH: $BOOST_BRANCH +cd .. +git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root +cd boost-root +export BOOST_ROOT=$(pwd) +export PATH=$PATH:$BOOST_ROOT +# git submodule update --init tools/boostdep +# python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $SELF +git submodule update --init --depth 20 --jobs 4 +rm -rf libs/$SELF +cp -r $DRONE_BUILD_DIR libs/$SELF +./bootstrap.sh +cp libs/beast/tools/user-config.jam ~/user-config.jam +echo "using $TOOLSET : : $COMPILER : $CXX_FLAGS ;" >> ~/user-config.jam +# ./b2 -d0 headers + +echo '==================================> SCRIPT' + +cd $BOOST_ROOT +libs/beast/tools/retry.sh libs/beast/tools/build-and-test.sh + +elif [ "$DRONE_JOB_BUILDTYPE" == "codecov" ]; then + +echo '==================================> INSTALL' + +common_install + +echo '==================================> SCRIPT' + +cd $BOOST_ROOT/libs/$SELF +ci/travis/codecov.sh + +elif [ "$DRONE_JOB_BUILDTYPE" == "valgrind" ]; then + +echo '==================================> INSTALL' + +common_install + +echo '==================================> SCRIPT' + +cd $BOOST_ROOT/libs/$SELF +VALGRIND_OPTS="$VALGRIND_OPTS --suppressions=$BOOST_ROOT/libs/$SELF/tools/valgrind.supp" +echo "VALGRIND_OPTS is $VALGRIND_OPTS" +ci/travis/valgrind.sh + +elif [ "$DRONE_JOB_BUILDTYPE" == "coverity" ]; then + +echo '==================================> INSTALL' + +common_install + +echo '==================================> SCRIPT' + +if [ -n "${COVERITY_SCAN_NOTIFICATION_EMAIL}" -a \( "$TRAVIS_BRANCH" = "develop" -o "$TRAVIS_BRANCH" = "master" \) -a \( "$DRONE_BUILD_EVENT" = "push" -o "$DRONE_BUILD_EVENT" = "cron" \) ] ; then +cd $BOOST_ROOT/libs/$SELF +ci/travis/coverity.sh +fi + +elif [ "$DRONE_JOB_BUILDTYPE" == "docs" ]; then + +export BOOST_CI_SRC_FOLDER=$(pwd) + +echo '==================================> INSTALL' +pwd +cd .. +mkdir -p $HOME/cache && cd $HOME/cache +if [ ! -d doxygen ]; then git clone -b 'Release_1_8_15' --depth 1 https://github.com/doxygen/doxygen.git && echo "not-cached" ; else echo "cached" ; fi +cd doxygen +cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release +cd build +sudo make install +cd ../.. +if [ ! -f saxonhe.zip ]; then wget -O saxonhe.zip https://sourceforge.net/projects/saxon/files/Saxon-HE/9.9/SaxonHE9-9-1-4J.zip/download && echo "not-cached" ; else echo "cached" ; fi +unzip -o saxonhe.zip +sudo rm /usr/share/java/Saxon-HE.jar +sudo cp saxon9he.jar /usr/share/java/Saxon-HE.jar +cd .. +BOOST_BRANCH=develop && [ "$DRONE_BRANCH" == "master" ] && BOOST_BRANCH=master || true +git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root --depth 1 +cd boost-root +export BOOST_ROOT=$(pwd) +git submodule update --init libs/context +git submodule update --init tools/boostbook +git submodule update --init tools/boostdep +git submodule update --init tools/docca +git submodule update --init tools/quickbook +rsync -av $BOOST_CI_SRC_FOLDER/ libs/json +python tools/boostdep/depinst/depinst.py ../tools/quickbook +./bootstrap.sh +./b2 headers + +echo '==================================> COMPILE' + +echo "using doxygen ; using boostbook ; using saxonhe ;" > tools/build/src/user-config.jam +./b2 -j3 libs/json/doc//boostrelease + +fi + diff --git a/.drone/linux-cxx-install.sh b/.drone/linux-cxx-install.sh deleted file mode 100755 index 69a042cd..00000000 --- a/.drone/linux-cxx-install.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -set -ex -echo ">>>>> APT: REPO.." -for i in {1..3}; do sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" && break || sleep 2; done -if test -n "${LLVM_OS}" ; then - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - if test -n "${LLVM_VER}" ; then - sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main" - else - # Snapshot (i.e. trunk) build of clang - sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS} main" - fi -elif [[ $CXX =~ ^clang || $TOOLSET =~ ^clang || $B2_TOOLSET =~ ^clang ]]; then - # Default Travis Installation of clang-7 - LLVM_OS=$(awk -F= '$1=="VERSION_CODENAME" { print $2 ;}' /etc/os-release) - LLVM_VER="7" - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main" - sudo -E apt-get -o Acquire::Retries=3 update - sudo -E apt-get -o Acquire::Retries=3 -y --no-install-suggests --no-install-recommends install libstdc++-8-dev clang-7 libc++-7-dev libc++-helpers libc++abi-7-dev - ln -s /usr/bin/clang-7 /usr/bin/clang - ln -s /usr/bin/clang /usr/bin/clang++ -fi - -echo ">>>>> APT: UPDATE.." -sudo -E apt-get -o Acquire::Retries=3 update -echo ">>>>> APT: INSTALL ${PACKAGES}.." -sudo -E apt-get -o Acquire::Retries=3 -y --no-install-suggests --no-install-recommends install ${PACKAGES} - -MAJOR_VERSION=$(lsb_release -r -s | cut -c 1-2) -if [ "$MAJOR_VERSION" -lt "20" ]; then - sudo -E apt-get -o Acquire::Retries=3 -y install python python-pip -fi - -if [ "$MAJOR_VERSION" -gt "18" ]; then - sudo -E apt-get -o Acquire::Retries=3 -y install python3 python3-pip - ln -s /usr/bin/python3 /usr/bin/python || true - ln -s /usr/bin/pip3 /usr/bin/pip || true -fi diff --git a/.drone/windows-msvc-install.bat b/.drone/windows-msvc-install.bat deleted file mode 100755 index 42cd95fa..00000000 --- a/.drone/windows-msvc-install.bat +++ /dev/null @@ -1,2 +0,0 @@ - -true diff --git a/tools/build-and-test.sh b/tools/build-and-test.sh index 5ab8ee75..b8946af0 100755 --- a/tools/build-and-test.sh +++ b/tools/build-and-test.sh @@ -136,19 +136,20 @@ function build_bjam () build_bjam if [[ $VARIANT == "beast_coverage" ]]; then + GCOV=${GCOV:-gcov} # for lcov to work effectively, the paths and includes # passed to the compiler should not contain "." or "..". # (this runs in $BOOST_ROOT) lcov --version find "$BOOST_ROOT" -name "*.gcda" | xargs rm -f rm -f "$BOOST_ROOT/*.info" - lcov --no-external -c -i -d "$BOOST_ROOT" -o baseline.info > /dev/null + lcov --gcov-tool $GCOV --no-external -c -i -d "$BOOST_ROOT" -o baseline.info > /dev/null run_tests "$BIN_DIR" fat-tests # https://bugs.launchpad.net/ubuntu/+source/lcov/+bug/1163758 - lcov --no-external -c -d "$BOOST_ROOT" -o testrun-all.info > /dev/null 2>&1 - lcov -a baseline.info -a testrun-all.info -o lcov-diff.info > /dev/null - lcov -e "lcov-diff.info" "$INC_DIR/*" -o lcov.info > /dev/null - lcov --remove "lcov.info" "$INC_DIR/_experimental/*" -o lcov.info > /dev/null + lcov --gcov-tool $GCOV --no-external -c -d "$BOOST_ROOT" -o testrun-all.info > /dev/null 2>&1 + lcov --gcov-tool $GCOV -a baseline.info -a testrun-all.info -o lcov-diff.info > /dev/null + lcov --gcov-tool $GCOV -e "lcov-diff.info" "$INC_DIR/*" -o lcov.info > /dev/null + lcov --gcov-tool $GCOV --remove "lcov.info" "$INC_DIR/_experimental/*" -o lcov.info > /dev/null echo "Change working directory for codecov:" pwd pushd .