diff options
-rw-r--r-- | .travis.yml | 26 | ||||
-rw-r--r-- | build/docker/README.md | 104 | ||||
-rw-r--r-- | build/docker/ubuntu-trusty/Dockerfile | 6 | ||||
-rw-r--r-- | lib/go/Makefile.am | 3 |
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 |