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 build flavor builds Bond with the latest gRPC master branch so we
can detect potential breaks faster than when we upgrade our submodule.
This build flavor isn't needed on every commit or pull request, so it's
only enabled for Travis's cron builds.
This image is a little bit smaller, so should download marginally
faster. It will also help assure we don't take dependencies of libraries
that need an X server.
Every change (well, most every) to the master branch produces a new
Docker image (for our Linux CI builds). However, we don't use each new
image. Instead, occasionally someone updates .travis.yml to point to a
new image. Thus, there's a build up of Docker images in the repository
that aren't being used.
These images are garbage: garbage in the sense that they're not
reachable from any of the .travis.yml roots.
This commit adds a script that can be used to find and remove these
garbage images.
Given a set of filters to find root commits (e.g., we can specify all
tags and all commits in the past two weeks), the script finds all the
referenced Docker images in the various revisions to .travis.yml. It
then compares the referenced images to those present in the repository,
skips images that are too new to be collected, and--for now--prints the
`az` CLI command to remove that image.
The `az` CLI is implemented in Python, so Python is going to be
available wherever `az` is. Since this script was a bit too complicated
for a shell script, Python 3 was chosen as its implementation language.
This script is intended to be run inside a VSTS build using the Azure
CLI task [1]. However, it will work anywhere that `az login` has been
run and given credentials with read/write access to the
bondciimages.azurecr.io repository.
[1]: https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/AzureCLI/Readme.md
* Use `docker pull` to download a pre-built image from
bondciimages.azurecr.io instead of `wget` then `docker load`.
* This speeds up image downloading by about 25%.
* Update tools/ci-scripts/linux/image-builder/README.md to indicate that
images are built automatically in a Microsoft VSTS build queue.
* Delete helper build_image.zsh and upload_image.zsh scripts.
Switch to building some configurations with GCC. This is part of a larger
set of changes that will build some representative configurations for each
PR and a fuller matrix out-of-band.
Issue https://github.com/Microsoft/bond/issues/666 has more details.
ClientAsyncResponseReader had a breaking API change that we needed to
adjust to.
The gRPC zlib submodule is now conflicting with the system-wide zlib.
When using CMake inside of Travis, we prefer the system-wide zlib
package over the submodule.
There also appears to be a bug with ClientAsyncResponseReader's
placement new and placement delete operators, so we're consuming a
slightly patched version (see
https://github.com/chwarr/grpc/commit/8bd0fb92ec for the delta).
Upstream issue https://github.com/grpc/grpc/issues/11301 has been opened
about this problem.
Replace BOND_CORE_ONLY with BOND_ENABLE_COMM and BOND_ENABLE_GRPC in cmake
scripts and configs for AppVeyor and Travis. Both BOND_ENABLE_COMM and
BOND_ENABLE_GRPC are set to TRUE by default.
- CI builds using GHC 7.6.3 will fail since appropriate Cabal library is missing
- This change makes sure to install Cabal
- Closes https://github.com/Microsoft/bond/issues/384
Travis's macOS VMs are too weak to complete the C++ build in an hour, and it's
routinely taking one or two hours for us to get a build host. (Travis stats
suggest they only have slots for 128 simultaneous builds globally.)
Work around for a problem with wget verifying new certificates:
https://github.com/travis-ci/travis-ci/issues/5059
Travis CI Trusty image is not ready yet, at this moment having problem
with inconsistent Python versions.
CMake uses the `FOLDER` property to group the generated Visual Studio
projects into solution folders.
Removed bond_ and documentation_ prefix from project names. The prefixes
were intended to group projects by name which is no longer necessary.
- Switch project language to csharp in order to get built-in
installation of Mono on Linux and OSX.
- Use addons to install Linux packages instead of calling `sudo apt-get`
- Since g++ and clang++ are the same compiler on OSX eliminate one from
the build matrix.
- Add C++ Clang build and test to Linux matrix.
- Add python unit test and example to the Linux build matrix.
- Install cmake directly from cmake.org to avoid use of sudo.
Add to the build matrix:
- GCC compiler
- C# tests on OSX
- Non-default versions of GHC on Linux
- Python tests
Separate C++ and C# tests as distinct builds (C# still depends on core
C++ build to get the gbc compiler).
1) When running the generated makefile with multiple jobs the `cabal
install` could start before `cabal sandbox` finished initializing the
sandbox leading to packages being installed globally and not available
during `cabal build` which expects dependencies in the sandbox.
2) Tarvis CI build sometimes would fail because nuget couldn't reach the
online repository. Added `travis_retry` to mitigate the problem.
AppVeyor:
1. Work around memory limitations in Haskell build
2. Run subset of C# test matrix if the sandbox wasn't in cache
Travis CI
1. Change project type to C++
2. Install Mono manually in Linux
3. Use Clang as C++ compiler
4. cabal install happy
For now only configuring OS X build. Travis-CI runs Linux builds on
Ubuntu 12.04 for which pre-built Boost packages end at 1.48. Bond
currently requires 1.54.