[travis] Test Boost 1.61+ with clang & g++

Drops support for versions of Boost older than two years. Boost 1.61+ or
newer is now required. (Bond will likely continue to work with older
versions of Boost, but we'll no longer actively test against them.)

Using cron jobs, add coverage for all supported versions of Boost with
both Clang and G++.

This is the Travis-side fix for:
* https://github.com/Microsoft/bond/issues/666
* https://github.com/Microsoft/bond/issues/771
This commit is contained in:
Christopher Warrington 2018-04-05 20:25:17 -07:00 коммит произвёл Ara Ayvazyan
Родитель 286a400d04
Коммит 3dc9704e9c
4 изменённых файлов: 38 добавлений и 19 удалений

Просмотреть файл

@ -13,24 +13,38 @@ services:
- docker
env:
- FLAVOR="cs"
- FLAVOR="cpp-core" BOOST="1.66.0" COMPILER="gcc"
- FLAVOR="cpp-core" BOOST="1.66.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.65.1" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.64.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.63.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.62.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.61.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.60.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.59.0" COMPILER="clang"
- FLAVOR="cpp-core" BOOST="1.58.0" COMPILER="clang"
- FLAVOR="cpp-grpc" BOOST="1.66.0" COMPILER="gcc"
- FLAVOR="cpp-grpc" BOOST="1.65.1" COMPILER="clang"
- FLAVOR="cpp-grpc" BOOST="1.64.0" COMPILER="clang"
- FLAVOR="cpp-grpc" BOOST="1.63.0" COMPILER="clang"
- FLAVOR="cpp-grpc-master" BOOST="1.66.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="hs"
- FLAVOR="java"
- FLAVOR="cpp-core" BOOST="1.65.1" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.64.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.63.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.62.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.61.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.65.1" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.64.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.63.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.62.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.61.0" COMPILER="clang" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.66.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.65.1" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.64.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.63.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.62.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-core" BOOST="1.61.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.66.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.65.1" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.64.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.63.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.62.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc" BOOST="1.61.0" COMPILER="gcc" CRON_ONLY="true"
- FLAVOR="cpp-grpc-master" BOOST="1.66.0" COMPILER="clang" CRON_ONLY="true"
script:
- if [ "$CRON_ONLY" = "true" ] && [ "$TRAVIS_EVENT_TYPE" != "cron" ] ; then echo "Skipping cron-only job"; exit 0; fi
- CI_BUILD_IMAGE=bondciimages.azurecr.io/ubuntu-1604:build-11401554

Просмотреть файл

@ -47,6 +47,11 @@ different versioning scheme, following the Haskell community's
removed. This includes all gbc options related to Comm and all Comm APIs
and header files. [Issue
#824](https://github.com/Microsoft/bond/issues/824)
* **Breaking change** Only versions of Boost released in the past two years
(1.61 and newer) are supported. Bond will *likely* continue to work with
older versions, but it is no longer tested with anything older than 1.61.
Test coverage for Boost versions 1.61–1.66 has been improved. [Issue
#771](https://github.com/Microsoft/bond/issues/771)
* **Breaking change** Constructors accepting a `Comparer` have been removed from
`bond::maybe` and `bond::nullable` types.
* **Breaking change** The `bond::is_blob` and `bond::is_nullable` traits

Просмотреть файл

@ -40,7 +40,7 @@ Bond C++ library requires some C++11 features (currently limited to those
supported bv Visual C++ 2013); a C++11 compiler is required. Additionally,
to build Bond you will need CMake (3.1+),
[Haskell Stack](https://docs.haskellstack.org/en/stable/README/#how-to-install)
(1.5.1+) and Boost (1.58+).
(1.5.1+) and Boost (1.61+).
Following are specific instructions for building on various platforms.
@ -180,7 +180,7 @@ cmake .. \
Install the following tools:
- Visual Studio 2013 or 2015
- Visual Studio 2013, 2015, or 2017
- Visual Studio 2015 is required to build C# Bond from source
- CMake ([http://www.cmake.org/download/](http://www.cmake.org/download/))
- Haskell Stack ([https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows](https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows))
@ -206,7 +206,7 @@ switch is used to run the unit tests as well.
The C++ and Python versions of Bond additionally require:
- Boost 1.58+ ([http://www.boost.org/users/download/](http://www.boost.org/users/download/))
- Boost 1.61+ ([http://www.boost.org/users/download/](http://www.boost.org/users/download/))
- Python 2.7 ([https://www.python.org/downloads/](https://www.python.org/downloads/))
You may need to set the environment variables `BOOST_ROOT` and `BOOST_LIBRARYDIR`
@ -214,8 +214,8 @@ to specify where Boost and its pre-built libraries for your environment (MSVC 12
found, e.g.:
```bash
set BOOST_ROOT=D:\boost_1_58_0
set BOOST_LIBRARYDIR=D:\boost_1_58_0\lib64-msvc-14.0
set BOOST_ROOT=D:\boost_1_61_0
set BOOST_LIBRARYDIR=D:\boost_1_61_0\lib64-msvc-14.0
```
The core Bond library and most examples only require Boost headers. The

Просмотреть файл

@ -2,7 +2,7 @@
set -eux
BOOST_VERSIONS=(1.58.0 1.59.0 1.60.0 1.61.0 1.62.0 1.63.0 1.64.0 1.65.1 1.66.0)
BOOST_VERSIONS=(1.61.0 1.62.0 1.63.0 1.64.0 1.65.1 1.66.0)
BOOST_LIBRARIES="chrono,date_time,python,system,test,thread"
BUILD_ROOT=/tmp/boosts