Skip to content

Commit

Permalink
Cleanup CI:
Browse files Browse the repository at this point in the history
close boostorg#1558

- Parallelize submodule clone.
- Do a shallow submodule clone.
- Move submodule update code to a script.
- Build with BOOST_BEAST_USE_STD_STRING_VIEW on msvc

Signed-off-by: Damian Jarek <[email protected]>
  • Loading branch information
djarek authored and vinniefalco committed Apr 15, 2019
1 parent a0932ea commit df0e933
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 166 deletions.
100 changes: 18 additions & 82 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,12 @@ matrix:
# Default clang++ with libc++
- os: linux
compiler: clang++-libc++
script: b2 -j3 libs/beast/test toolset=clang cxxstd=11 cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++
#script: b2 -j3 libs/beast/test toolset=clang cxxstd=11 cxxflags=-stdlib=libc++ linkflags="-stdlib=libc++ -lc++abi"
env:
- VARIANT=debug
- TOOLSET=clang
- COMPILER=clang++-libc++
- CXXSTD=11
- CXX_FLAGS="<cxxflags>-stdlib=libc++ <linkflags>-stdlib=libc++"
addons:
apt:
packages:
Expand All @@ -58,7 +62,11 @@ matrix:
# Default g++
- os: linux
compiler: g++
script: b2 -j3 libs/beast/test toolset=gcc cxxstd=11
env:
- VARIANT=release
- TOOLSET=gcc
- COMPILER=g++
- CXXSTD=11

# GCC 8, C++17, libstdc++, release
- os: linux
Expand Down Expand Up @@ -114,7 +122,7 @@ matrix:
- llvm-toolchain-precise-3.8
- *base_sources

# OSX Clang, C++14, libc++, debug,
# OSX Clang, C++14, libc++, debug,
# - if: branch != master
- os: osx
compiler: clang++
Expand All @@ -124,91 +132,19 @@ matrix:
- COMPILER=clang++
- CXXSTD=14
before_install:
- brew install openssl
- export OPENSSL_ROOT=$(brew --prefix openssl)

install:
- export BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- $TRAVIS_BUILD_DIR/tools/get-boost.sh $TRAVIS_BRANCH $TRAVIS_BUILD_DIR
- cd boost-root
- export BOOST_ROOT="`pwd`"
- export PATH="`pwd`":$PATH
- git submodule update --init libs/headers
- git submodule update --init tools/build
- git submodule update --init tools/boost_install
- git submodule update --init tools/boostdep
- git submodule update --init libs/align
- git submodule update --init libs/asio
- git submodule update --init libs/assert
- git submodule update --init libs/config
- git submodule update --init libs/core
- git submodule update --init libs/endian
- git submodule update --init libs/filesystem
- git submodule update --init libs/intrusive
- git submodule update --init libs/locale
- git submodule update --init libs/optional
- git submodule update --init libs/smart_ptr
- git submodule update --init libs/static_assert
- git submodule update --init libs/system
- git submodule update --init libs/throw_exception
- git submodule update --init libs/type_traits
- git submodule update --init libs/utility
- git submodule update --init libs/winapi

- git submodule update --init libs/algorithm
- git submodule update --init libs/array
- git submodule update --init libs/atomic
- git submodule update --init libs/bind
- git submodule update --init libs/chrono
- git submodule update --init libs/concept_check
- git submodule update --init libs/container
- git submodule update --init libs/container_hash
- git submodule update --init libs/context
- git submodule update --init libs/conversion
- git submodule update --init libs/coroutine
- git submodule update --init libs/date_time
- git submodule update --init libs/detail
- git submodule update --init libs/exception
- git submodule update --init libs/function
- git submodule update --init libs/function_types
- git submodule update --init libs/functional
- git submodule update --init libs/fusion
- git submodule update --init libs/integer
- git submodule update --init libs/io
- git submodule update --init libs/iterator
- git submodule update --init libs/lambda
- git submodule update --init libs/lexical_cast
- git submodule update --init libs/logic
- git submodule update --init libs/math
- git submodule update --init libs/move
- git submodule update --init libs/mp11
- git submodule update --init libs/mpl
- git submodule update --init libs/numeric/conversion
- git submodule update --init libs/pool
- git submodule update --init libs/predef
- git submodule update --init libs/preprocessor
- git submodule update --init libs/random
- git submodule update --init libs/range
- git submodule update --init libs/ratio
- git submodule update --init libs/rational
- git submodule update --init libs/serialization
- git submodule update --init libs/thread
- git submodule update --init libs/tokenizer
- git submodule update --init libs/tuple
- git submodule update --init libs/type_index
- git submodule update --init libs/typeof
- git submodule update --init libs/unordered
- rm -rf libs/beast
- mkdir libs/beast
- cp -r $TRAVIS_BUILD_DIR/* libs/beast
- export PATH=$PATH:"`pwd`"
- export BOOST_ROOT=$(pwd)
- ./bootstrap.sh

script:
- |-
cp libs/beast/tools/user-config.jam ~/user-config.jam
- cp libs/beast/tools/user-config.jam ~/user-config.jam
- |-
echo "using $TOOLSET : : $COMPILER ;" >> ~/user-config.jam
echo "using $TOOLSET : : $COMPILER : $CXX_FLAGS ;" >> ~/user-config.jam
script:
- cd ../boost-root
- libs/beast/tools/retry.sh libs/beast/tools/build-and-test.sh

Expand Down
91 changes: 7 additions & 84 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,117 +15,40 @@ configuration:
#- Debug
- Release

image:
- Visual Studio 2017

environment:
OPENSSL_ROOT: C:\tools\vcpkg\installed\x64-windows
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
TOOLSET: msvc-14.0
ADDRMD: 64
CXXSTD: 11

# VFALCO Appveyor has a 1 hour time limit, and
# I already test this configuration locally.
#
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# TOOLSET: msvc-14.1
# CXXSTD: 11
# ADDRMD: 64

# This configuration is not available yet
# - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
# TOOLSET: msvc-14.2
# CXXSTD: 11
# ADDRMD: 64

install:
- SET BOOST_BRANCH=develop
- IF "%APPVEYOR_REPO_BRANCH%" == "master" SET BOOST_BRANCH=master
- vcpkg install openssl --triplet x64-windows
- ps: cp tools\user-config.jam ~\user-config.jam
- CD ..
- git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init libs/headers
- git submodule update --init tools/build
- git submodule update --init tools/boost_install
- git submodule update --init tools/boostdep
- git submodule update --init libs/align
- git submodule update --init libs/asio
- git submodule update --init libs/assert
- git submodule update --init libs/config
- git submodule update --init libs/core
- git submodule update --init libs/endian
- git submodule update --init libs/filesystem
- git submodule update --init libs/intrusive
- git submodule update --init libs/locale
- git submodule update --init libs/optional
- git submodule update --init libs/smart_ptr
- git submodule update --init libs/static_assert
- git submodule update --init libs/system
- git submodule update --init libs/throw_exception
- git submodule update --init libs/type_traits
- git submodule update --init libs/utility
- git submodule update --init libs/winapi

- git submodule update --init libs/algorithm
- git submodule update --init libs/array
- git submodule update --init libs/atomic
- git submodule update --init libs/bind
- git submodule update --init libs/chrono
- git submodule update --init libs/concept_check
- git submodule update --init libs/container
- git submodule update --init libs/container_hash
- git submodule update --init libs/context
- git submodule update --init libs/conversion
- git submodule update --init libs/coroutine
- git submodule update --init libs/date_time
- git submodule update --init libs/detail
- git submodule update --init libs/exception
- git submodule update --init libs/function
- git submodule update --init libs/function_types
- git submodule update --init libs/functional
- git submodule update --init libs/fusion
- git submodule update --init libs/integer
- git submodule update --init libs/io
- git submodule update --init libs/iterator
- git submodule update --init libs/lambda
- git submodule update --init libs/lexical_cast
- git submodule update --init libs/logic
- git submodule update --init libs/math
- git submodule update --init libs/move
- git submodule update --init libs/mp11
- git submodule update --init libs/mpl
- git submodule update --init libs/numeric/conversion
- git submodule update --init libs/pool
- git submodule update --init libs/predef
- git submodule update --init libs/preprocessor
- git submodule update --init libs/random
- git submodule update --init libs/range
- git submodule update --init libs/ratio
- git submodule update --init libs/rational
- git submodule update --init libs/serialization
- git submodule update --init libs/thread
- git submodule update --init libs/tokenizer
- git submodule update --init libs/tuple
- git submodule update --init libs/type_index
- git submodule update --init libs/typeof
- git submodule update --init libs/unordered
- rm -rf libs\beast
- MKDIR libs\beast
- XCOPY /s /e /q %APPVEYOR_BUILD_FOLDER% libs\beast\
- bash -c '$APPVEYOR_BUILD_FOLDER/tools/get-boost.sh $APPVEYOR_REPO_BRANCH $APPVEYOR_BUILD_FOLDER'
- CD boost-root
- CMD /c bootstrap
- b2 headers

build: off

test_script:
- if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD%
- if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD%
- b2 --debug-configuration variant=release %CXXSTD% %ADDRMD% toolset=%TOOLSET% libs/beast/example
- b2 --debug-configuration variant=release %CXXSTD% %ADDRMD% toolset=%TOOLSET% --verbose-test libs/beast/test//run-fat-tests
- b2 --debug-configuration variant=release cxxstd=14 address-model=64 toolset=msvc-14.0 libs/beast/example -j3
- b2 --debug-configuration variant=release cxxstd=14 address-model=64 toolset=msvc-14.0 --verbose-test libs/beast/test//run-fat-tests -j3
- b2 --debug-configuration variant=release cxxstd=17 define="BOOST_BEAST_USE_STD_STRING_VIEW" address-model=64 toolset=msvc-14.1 libs/beast/example -j3
- b2 --debug-configuration variant=release cxxstd=17 define="BOOST_BEAST_USE_STD_STRING_VIEW" address-model=64 toolset=msvc-14.1 --verbose-test libs/beast/test//run-fat-tests -j3

cache:
- c:\tools\vcpkg\installed\
88 changes: 88 additions & 0 deletions tools/get-boost.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#! /bin/sh

set -e

build_dir=$2

branch="master"
if [ "$1" != "master" ]; then
branch="develop"
fi

git clone -b $branch --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root

# Use a reasonably large depth to prevent intermittent update failures due to
# commits being on a submodule's master before the superproject is updated.
git submodule update --init --depth 20 --jobs 4 \
libs/array \
libs/headers \
tools/build \
tools/boost_install \
tools/boostdep \
libs/align \
libs/asio \
libs/assert \
libs/config \
libs/core \
libs/endian \
libs/filesystem \
libs/intrusive \
libs/locale \
libs/optional \
libs/smart_ptr \
libs/static_assert \
libs/system \
libs/throw_exception \
libs/type_traits \
libs/utility \
libs/winapi \
libs/algorithm \
libs/array \
libs/atomic \
libs/bind \
libs/chrono \
libs/concept_check \
libs/container \
libs/container_hash \
libs/context \
libs/conversion \
libs/coroutine \
libs/date_time \
libs/detail \
libs/exception \
libs/function \
libs/function_types \
libs/functional \
libs/fusion \
libs/integer \
libs/io \
libs/iterator \
libs/lambda \
libs/lexical_cast \
libs/logic \
libs/math \
libs/move \
libs/mp11 \
libs/mpl \
libs/numeric/conversion \
libs/pool \
libs/predef \
libs/preprocessor \
libs/random \
libs/range \
libs/ratio \
libs/rational \
libs/thread \
libs/tuple \
libs/type_index \
libs/typeof \
libs/unordered

echo Submodule update complete

echo "BUILD_DIR: $build_dir"

rm -rf libs/beast
mkdir libs/beast
cp -r $build_dir libs/

0 comments on commit df0e933

Please sign in to comment.