summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml26
-rw-r--r--build/docker/README.md104
-rw-r--r--build/docker/ubuntu-trusty/Dockerfile6
-rw-r--r--lib/go/Makefile.am3
4 files changed, 75 insertions, 64 deletions
diff --git a/.travis.yml b/.travis.yml
index c02420884..fcd334a9b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -59,35 +59,36 @@ env:
# Autotools builds
# TODO: Remove them once migrated to CMake
- # centos-7.3 build jobs appear to be unstable/hang...
- # TEST_NAME="Autotools (CentOS 7.3)"
- # DISTRO=centos-7.3
- # SCRIPT="autotools.sh"
- # BUILD_ENV="-e CC=gcc -e CXX=g++"
- # BUILD_ARG="--without-cpp --without-csharp --without-c_glib --without-d -without-dart --without-erlang --without-go --without-haskell --without-haxe"
+
+ - TEST_NAME="Autotools (Ubuntu Trusty)"
+ DISTRO=ubuntu-trusty
+ SCRIPT="autotools.sh"
+ BUILD_ENV="-e CC=gcc -e CXX=g++"
- TEST_NAME="Autotools (Ubuntu Xenial)"
SCRIPT="autotools.sh"
BUILD_ENV="-e CC=gcc -e CXX=g++"
- BUILD_ARG="--enable-plugin" # --without-java --without-lua --without-nodejs --without-perl --without-php --without-php_extension --without-python --without-py3 --without-ruby --without-rust"
+ BUILD_ARG="--enable-plugin"
# CMake builds
- # centos-7.3 build jobs appear to be unstable/hang...
- # TEST_NAME="CMake (CentOS 7.3)"
- # DISTRO=centos-7.3
+
+ - TEST_NAME="CMake (Ubuntu Trusty)"
+ DISTRO=ubuntu-trusty
- TEST_NAME="CMake (Ubuntu Xenial)"
# C++ specific options: compiler plug-in, threading model
- - TEST_NAME="C++ (Boost Thread)"
+
+ - TEST_NAME="C++98 (Boost Thread)"
BUILD_LIBS="CPP TESTING TUTORIALS"
- BUILD_ARG="-DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
+ BUILD_ARG="-DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF --DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
- TEST_NAME="C++ (Std Thread) and Plugin"
BUILD_LIBS="CPP TESTING TUTORIALS"
BUILD_ARG="-DWITH_PLUGIN=ON -DWITH_STDTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF"
# Distribution
+
- TEST_NAME="make dist"
SCRIPT="make-dist.sh"
@@ -96,6 +97,7 @@ env:
# C and C++ undefined behavior. This wraps autotools.sh, but each binary crashes if
# undefined behavior occurs. Skips the known flaky tests.
+
- TEST_NAME="UBSan"
SCRIPT="ubsan.sh"
BUILD_ARG="--without-haskell --without-nodejs --without-perl --without-python"
diff --git a/build/docker/README.md b/build/docker/README.md
index f6db3c2f4..2de7d6830 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -1,19 +1,25 @@
# Apache Thrift Docker containers
+
Docker containers used to build and test Apache Thrift for a variety of platforms.
## Available Containers
-### CentOS
-* 7.3 (current)
-
-### Debian
-* jessie
-* stretch (current)
+The Travis CI (continuous integration) builds use the Ubuntu Trusty and Xenial images to maximize
+language level coverage. The other images may or may not work for all languages.
### Ubuntu
* trusty
* xenial (current)
+### CentOS
+* 7.3
+ * make check in lib/py may hang in test_sslsocket - root cause unknown
+
+### Debian
+* jessie
+* stretch
+ * make check in lib/cpp fails due to https://svn.boost.org/trac10/ticket/12507
+
## Dependencies
* A working Docker environment. A Vagrantfile is provided which will setup an Ubuntu host and working Docker environment as well as build the Apache Thrift Docker container for testing and development.
@@ -33,49 +39,49 @@ From the Apache Thrift code base root:
docker run -v $(pwd):/thrift/src -it thrift /bin/bash
## Core Tool Versions per Dockerfile
- | Tool | centos-7.3 | debian-stretch | ubuntu-xenial |
- |-----------|------------|----------------|---------------|
- | ant | 1.9.2 | 1.9.9 | 1.9.6 |
- | autoconf | 2.69 | 2.69 | 2.69 |
- | automake | 1.13.4 | 1.15 | 1.15 |
- | bison | 2.7 | 3.0.4 | 3.0.4 |
- | boost | 1.53.0 | 1.62.0 | 1.58.0 |
- | cmake | 3.6.3 | 3.7.2 | 3.5.1 |
- | flex | 2.5.37 | 2.6.1 | 2.6.0 |
- | glibc | 2.17 | 2.24 | 2.23 |
- | libevent | 2.0.21 | 2.0.21 | 2.0.21 |
- | libstdc++ | 4.8.5 | 6.3.0 | 5.4.0 |
- | make | 3.82 | 4.1 | 4.1 |
- | openssl | 1.0.1e | 1.1.0f | 1.0.2g |
+| Tool | centos-7.3 | debian-stretch | ubuntu-trusty | ubuntu-xenial | Notes |
+| :-------- | :--------- | :------------- | :------------ | :------------ | :---- |
+| ant | 1.9.2 | 1.9.9 | 1.9.3 | 1.9.6 | |
+| autoconf | 2.69 | 2.69 | 2.69 | 2.69 | |
+| automake | 1.13.4 | 1.15 | 1.14.1 | 1.15 | |
+| bison | 2.7 | 3.0.4 | 3.0.2 | 3.0.4 | |
+| boost | 1.53.0 | 1.62.0 | 1.54.0 | 1.58.0 | |
+| cmake | 3.6.3 | 3.7.2 | 3.2.2 | 3.5.1 | |
+| flex | 2.5.37 | 2.6.1 | 2.5.35 | 2.6.0 | |
+| glibc | 2.17 | 2.24 | 2.19 | 2.23 | |
+| libevent | 2.0.21 | 2.0.21 | 2.0.21 | 2.0.21 | |
+| libstdc++ | 4.8.5 | 6.3.0 | 4.8.4 | 5.4.0 | |
+| make | 3.82 | 4.1 | 3.81 | 4.1 | |
+| openssl | 1.0.1e | 1.1.0f | 1.0.1f | 1.0.2g | |
## Language Versions per Dockerfile
- | Language | centos-7.3 | debian-stretch | ubuntu-xenial |
- |-----------|------------|----------------|---------------|
- | as3 | | | |
- | C++-gcc | 4.8.5 | 6.3.0 | 5.4.0 |
- | C++-clang | 3.4.2 | 3.8.1 | 3.8 |
- | C# (mono) | 4.6.2 | 4.6.2.7 | 5.2.0.215 |
- | c_glib | 2.46.2 | 2.50.3 | 2.48.2 |
- | cocoa | | | |
- | d | 2.076.0 | 2.075.1 | 2.075.1 |
- | dart | 1.24.2 | 1.24.2 | 1.24.2 |
- | delphi | | | |
- | dotnet | | | |
- | erlang | 20 | 19.2 | 18.3 |
- | go | 1.9 | 1.7.4 | 1.6.2 |
- | haskell | 7.6.3 | 8.0.1 | 7.10.3 |
- | haxe | | 3.2.1 | 3.2.1 |
- | java | 1.8.0_141 | 1.8.0_141 | 1.8.0_131 |
- | js | | | |
- | lua | 5.3.4 | 5.2.4 | 5.2.4 |
- | nodejs | 6.11.1 | 8.4.0 | 7.10.1 |
- | ocaml | 4.01.0 | 4.02.3 | 4.02.3 |
- | perl | 5.16.3 | 5.24.1 | 5.22.1 |
- | php | 5.4.16 | 7.0.19 | 7.0.22 |
- | python2 | 2.7.5 | 2.7.13 | 2.7.12 |
- | python3 | 3.4.5 | 3.5.3 | 3.5.2 |
- | ruby | 2.0.0p648 | 2.3.3p222 | 2.3.1p112 |
- | rust | 1.17.0 | 1.14.0 | 1.15.1 |
- | smalltalk | | | |
- | swift | | | |
+| Language | centos-7.3 | debian-stretch | ubuntu-trusty | ubuntu-xenial | Notes |
+| :-------- | :--------- | :------------- | :------------ | :------------ | :---- |
+| as3 | | | | | Not in CI |
+| C++-gcc | 4.8.5 | 6.3.0 | 4.8.4 | 5.4.0 | |
+| C++-clang | 3.4.2 | 3.8.1 | 3.4 | 3.8 | |
+| C# (mono) | 4.6.2 | 4.6.2.7 | 5.2.0.224 | 5.2.0.215 | |
+| c_glib | 2.46.2 | 2.50.3 | 2.40.2 | 2.48.2 | |
+| cocoa | | | | | Not in CI |
+| d | 2.076.0 | 2.076.0 | 2.070.0 | 2.075.1 | |
+| dart | 1.24.2 | 1.24.2 | 1.24.2 | 1.24.2 | |
+| delphi | | | | | Not in CI |
+| dotnet | | | | | Not in CI |
+| erlang | 20 | 19.2 | 20 | 18.3 | |
+| go | 1.9 | 1.7.4 | 1.4.3 | 1.6.2 | |
+| haskell | 7.6.3 | 8.0.1 | 7.6.3 | 7.10.3 | |
+| haxe | | 3.2.1 | 3.2.1 | 3.2.1 | |
+| java | 1.8.0_141 | 1.8.0_141 | 1.7.0_151 | 1.8.0_131 | |
+| js | | | | | Unsure how to look for version info |
+| lua | 5.3.4 | 5.2.4 | 5.2.3 | 5.2.4 | |
+| nodejs | 6.11.1 | 8.4.0 | 4.8.4 | 7.10.1 | Node 8.5 broke copyFile and jsdoc |
+| ocaml | 4.01.0 | 4.02.3 | 4.02.3 | 4.02.3 | |
+| perl | 5.16.3 | 5.24.1 | 5.18.2 | 5.22.1 | |
+| php | 5.4.16 | 7.0.19 | 5.5.9 | 7.0.22 | |
+| python | 2.7.5 | 2.7.13 | 2.7.6 | 2.7.12 | |
+| python3 | 3.4.5 | 3.5.3 | 3.4.3 | 3.5.2 | |
+| ruby | 2.0.0p648 | 2.3.3p222 | 1.9.3p484 | 2.3.1p112 | |
+| rust | 1.17.0 | 1.14.0 | 1.17.0 | 1.15.1 | Rust is too old on stretch |
+| smalltalk | | | | | Not in CI |
+| swift | | | | | Not in CI |
diff --git a/build/docker/ubuntu-trusty/Dockerfile b/build/docker/ubuntu-trusty/Dockerfile
index a1ff5a1c5..857384b41 100644
--- a/build/docker/ubuntu-trusty/Dockerfile
+++ b/build/docker/ubuntu-trusty/Dockerfile
@@ -138,7 +138,7 @@ RUN apt-get install -y --no-install-recommends \
libneko0
# Newer release of nodejs
-RUN curl -sL https://deb.nodesource.com/setup_6.x | bash
+RUN curl -sL https://deb.nodesource.com/setup_4.x | bash
RUN apt-get install -y --no-install-recommends \
`# Node.js dependencies` \
nodejs
@@ -188,8 +188,8 @@ RUN mkdir -p /usr/lib/haxe && \
ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
mkdir -p /usr/lib/haxe/lib && \
chmod -R 777 /usr/lib/haxe/lib && \
- haxelib setup /usr/lib/haxe/lib && \
- haxelib install hxcpp
+ haxelib setup --always /usr/lib/haxe/lib && \
+ haxelib install --always hxcpp 3.4.64
# Node.js
# temporarily removed since this breaks the build (and is not needed to test C# code)
diff --git a/lib/go/Makefile.am b/lib/go/Makefile.am
index f1bd0e6d3..0d5971014 100644
--- a/lib/go/Makefile.am
+++ b/lib/go/Makefile.am
@@ -34,6 +34,9 @@ check-local:
GOPATH=`pwd` $(GO) get golang.org/x/net/context
GOPATH=`pwd` $(GO) test -race ./thrift
+clean-local:
+ $(RM) -rf pkg
+
all-local:
GOPATH=`pwd` $(GO) get golang.org/x/net/context
GOPATH=`pwd` $(GO) build ./thrift