| version: 2 |
| |
| jobs: |
| build: |
| environment: |
| - BOOST_LIBRARY=process |
| - CXX_STANDARD=gnu++11 |
| docker: |
| - image: gcc:7 |
| steps: |
| - checkout |
| - run: |
| name: Setting up Environment |
| command: | |
| echo 'export BOOST="$HOME/boost-local"' >> $BASH_ENV |
| if [ $CIRCLE_BRANCH = "master" ]; then |
| echo 'export BOOST_BRANCH="master"' >> $BASH_ENV; |
| else |
| echo 'export BOOST_BRANCH="develop"' >> $BASH_ENV; |
| fi |
| echo 'export BOOST_REMOVE="$BOOST/libs/$BOOST_LIBRARY"' >> $BASH_ENV |
| HOME_SED_=$(echo $HOME | sed -e 's/\//\\\//g') |
| echo 'export HOME_SED=$HOME_SED_' >> $BASH_ENV |
| - run: |
| name: install pre dependencies |
| command: | |
| apt-get update -yqq |
| apt-get install git curl valgrind -y |
| - run: |
| name: Initializing git repo for boost |
| command: | |
| git init $BOOST |
| cd $BOOST |
| echo Testing $BRANCH_TO_TEST |
| git remote add --no-tags -t $BOOST_BRANCH origin https://github.com/boostorg/boost.git |
| git fetch --depth=1 |
| git checkout $BOOST_BRANCH |
| git submodule update --init --merge |
| git remote set-branches --add origin $BOOST_BRANCH |
| git pull --recurse-submodules |
| git submodule update --init |
| git checkout $BOOST_BRANCH |
| git submodule foreach "git reset --quiet --hard; git clean -fxd" |
| git reset --hard; git clean -fxd |
| git status |
| rm -rf $BOOST_REMOVE |
| mv $HOME/project $BOOST_REMOVE |
| - run: |
| name: Bootstrapping boost-build |
| command: | |
| cd $BOOST |
| ./bootstrap.sh |
| ./b2 headers |
| - run: |
| name: Building examples |
| command: | |
| cd $BOOST_REMOVE/example |
| ../../../b2 -j2 address-model=64 architecture=x86 toolset=gcc cxxflags="-std=gnu++14" -sBOOST_BUILD_PATH=. | tee example.log || FAILED=1 |
| sed -i -e "s/^..\/..\/..\/boost\/process\//\/root\/project\/include\/boost\/process\//gm" example.log |
| python <(curl -s https://report.ci/annotate.py) --tool gcc --name "Circle CI Gcc Build" --input example.log |
| exit $FAILED |
| - run: |
| name: Running Unit tests |
| command: | |
| cd $BOOST_REMOVE/test |
| ../../../b2 -j2 with-valgrind address-model=64 architecture=x86 testing.launcher=valgrind valgrind=on toolset=gcc cxxflags="--coverage -std=$CXX_STANDARD" linkflags="--coverage" -sBOOST_BUILD_PATH=. | tee test.log || FAILED=1 |
| ../../../b2 -j2 without-valgrind address-model=64 architecture=x86 toolset=gcc cxxflags="--coverage -std=$CXX_STANDARD" linkflags="--coverage" -sBOOST_BUILD_PATH=. | tee no-valgrind.log || FAILED=1 |
| sed -i -e "s/^..\/..\/..\/boost\/process\//\/root\/project\/include\/boost\/process\//gm" test.log |
| sed -i -e "s/^..\/..\/..\/boost\/process\//\/root\/project\/include\/boost\/process\//gm" no-valgrind.log |
| |
| python <(curl -s https://report.ci/annotate.py) --tool gcc --input test.log |
| python <(curl -s https://report.ci/annotate.py) --tool gcc --input no-valgrind.log |
| bash <(curl -s https://codecov.io/bash) -x gcov > /dev/null || true |
| echo "BUILD_RESULT: $FAILED" |
| exit $FAILED |