#!/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 TRAVIS_BUILD_DIR=$(pwd) export DRONE_BUILD_DIR=$(pwd) export TRAVIS_BRANCH=$DRONE_BRANCH export TRAVIS_EVENT_TYPE=$DRONE_BUILD_EVENT 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 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 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_JOB_BUILDTYPE" == "boost" ]; then echo '==================================> INSTALL' common_install echo '==================================> SCRIPT' export B2_TARGETS=${B2_TARGETS:-"libs/$SELF/test"} $BOOST_ROOT/libs/$SELF/ci/travis/build.sh elif [ "$DRONE_JOB_BUILDTYPE" == "docs" ]; then echo '==================================> INSTALL' export SELF=$(basename $REPO_NAME) 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 && [ "$TRAVIS_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 $TRAVIS_BUILD_DIR/ libs/$SELF python tools/boostdep/depinst/depinst.py ../tools/quickbook ./bootstrap.sh ./b2 headers echo '==================================> SCRIPT' echo "using doxygen ; using boostbook ; using saxonhe ;" >tools/build/src/user-config.jam ./b2 -j3 libs/$SELF/doc//boostrelease elif [ "$DRONE_JOB_BUILDTYPE" == "codecov" ]; then echo '==================================> INSTALL' common_install echo '==================================> SCRIPT' set +e cd $BOOST_ROOT/libs/$SELF ci/travis/codecov.sh # coveralls # uses multiple lcov steps from boost-ci codecov.sh script if [ -n "${COVERALLS_REPO_TOKEN}" ]; then echo "processing coveralls" pip3 install --user cpp-coveralls cd $BOOST_CI_SRC_FOLDER export PATH=/tmp/lcov/bin:$PATH command -v lcov lcov --version lcov --remove coverage.info -o coverage_filtered.info '*/test/*' '*/extra/*' cpp-coveralls --verbose -l coverage_filtered.info fi elif [ "$DRONE_JOB_BUILDTYPE" == "valgrind" ]; then echo '==================================> INSTALL' common_install echo '==================================> SCRIPT' cd $BOOST_ROOT/libs/$SELF ci/travis/valgrind.sh elif [ "$DRONE_JOB_BUILDTYPE" == "standalone" ]; then echo '==================================> INSTALL' # Installing cmake with apt-get, so not required here: # pip install --user cmake echo '==================================> SCRIPT' export CXXFLAGS="-Wall -Wextra -Werror -std=c++17" mkdir __build_17 cd __build_17 cmake -DBOOST_JSON_STANDALONE=1 .. cmake --build . ctest -V . export CXXFLAGS="-Wall -Wextra -Werror -std=c++2a" mkdir ../__build_2a cd ../__build_2a cmake -DBOOST_JSON_STANDALONE=1 .. cmake --build . ctest -V . 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" == "cmake-superproject" ]; then echo '==================================> INSTALL' common_install echo '==================================> COMPILE' # May want to re-enable -Werror # export CXXFLAGS="-Wall -Wextra -Werror" export CXXFLAGS="-Wall -Wextra" mkdir __build_static cd __build_static cmake -DBOOST_ENABLE_CMAKE=1 -DBUILD_TESTING=ON -DBoost_VERBOSE=1 \ -DBOOST_INCLUDE_LIBRARIES=$SELF .. cmake --build . ctest --output-on-failure -R boost_$SELF cd .. mkdir __build_shared cd __build_shared cmake -DBOOST_ENABLE_CMAKE=1 -DBUILD_TESTING=ON -DBoost_VERBOSE=1 \ -DBOOST_INCLUDE_LIBRARIES=$SELF -DBUILD_SHARED_LIBS=ON .. cmake --build . ctest --output-on-failure -R boost_$SELF elif [ "$DRONE_JOB_BUILDTYPE" == "cmake1" ]; then echo '==================================> INSTALL' # https://github.com/opencv/opencv-python#frequently-asked-questions pip install --upgrade pip pip install --user cmake echo '==================================> SCRIPT' export SELF=$(basename $REPO_NAME) BOOST_BRANCH=develop && [ "$DRONE_BRANCH" == "master" ] && BOOST_BRANCH=master || true echo BOOST_BRANCH: $BOOST_BRANCH cd .. git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root # mkdir -p libs/$SELF # cp -r $DRONE_BUILD_DIR/* libs/$SELF # git submodule update --init tools/boostdep git submodule update --init --recursive mkdir -p libs/$SELF cp -r $DRONE_BUILD_DIR/* libs/$SELF # CMake tests cd libs/$SELF mkdir __build__ && cd __build__ cmake -DCMAKE_INSTALL_PREFIX=~/.local .. cmake --build . --target install ctest --output-on-failure # CMake subdir tests cd ../test/cmake_test && mkdir __build__ && cd __build__ cmake -DCMAKE_INSTALL_PREFIX=~/.local .. cmake --build . cmake --build . --target check ctest --output-on-failure # Install Library cd ../../../../.. && mkdir __build_cmake_install_test__ && cd __build_cmake_install_test__ cmake -DBOOST_INCLUDE_LIBRARIES=$SELF -DCMAKE_INSTALL_PREFIX=~/.local -DBoost_VERBOSE=ON -DBoost_DEBUG=ON .. cmake --build . --target install # CMake install tests cd ../libs/$SELF/test/cmake_test && mkdir __build_cmake_install_test__ && cd __build_cmake_install_test__ cmake -DBOOST_CI_INSTALL_TEST=ON -DCMAKE_PREFIX_PATH=~/.local .. cmake --build . ctest --output-on-failure fi