You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2016/08/10 04:33:34 UTC
mesos git commit: Added coverity build to build_docker.sh.
Repository: mesos
Updated Branches:
refs/heads/master b0c86496e -> 705896003
Added coverity build to build_docker.sh.
This review adds an coverity build option
to build_docker.sh in order to enable
regular coverity builds on the ASF infrastructure.
Review: https://reviews.apache.org/r/50771/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/70589600
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/70589600
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/70589600
Branch: refs/heads/master
Commit: 7058960035c99ce82f45e6dba90375236e5f736d
Parents: b0c8649
Author: Joerg Schad <jo...@mesosphere.io>
Authored: Tue Aug 9 21:33:21 2016 -0700
Committer: Vinod Kone <vi...@gmail.com>
Committed: Tue Aug 9 21:33:21 2016 -0700
----------------------------------------------------------------------
support/docker_build.sh | 85 +++++++++++++++++++++++++-------------------
1 file changed, 49 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/70589600/support/docker_build.sh
----------------------------------------------------------------------
diff --git a/support/docker_build.sh b/support/docker_build.sh
index 8ae1aad..5c38c5c 100755
--- a/support/docker_build.sh
+++ b/support/docker_build.sh
@@ -64,6 +64,7 @@ case $OS in
append_dockerfile "RUN apt-get update"
append_dockerfile "RUN apt-get -y install build-essential $CLANG_PKG git maven autoconf libtool cmake"
append_dockerfile "RUN apt-get -y install openjdk-7-jdk python-dev libcurl4-nss-dev libsasl2-dev libapr1-dev libsvn-dev libevent-dev libev-dev"
+ append_dockerfile "RUN apt-get -y install wget curl sed"
# Add an unpriviliged user.
append_dockerfile "RUN adduser --disabled-password --gecos '' mesos"
@@ -121,42 +122,54 @@ append_dockerfile "ENV DISTCHECK_CONFIGURE_FLAGS $CONFIGURATION"
# Set the environment for build.
append_dockerfile "ENV $ENVIRONMENT"
-# Build and check Mesos.
-case $BUILDTOOL in
- autotools)
- append_dockerfile "CMD ./bootstrap && ./configure $CONFIGURATION && make -j8 distcheck"
- ;;
- cmake)
- # Transform autotools-like parameters to cmake-like.
- # Remove "'".
- CONFIGURATION=${CONFIGURATION//\'/""}
- # Replace "-" with "_".
- CONFIGURATION=${CONFIGURATION//-/"_"}
- # Replace "__" with "-D".
- CONFIGURATION=${CONFIGURATION//__/"-D"}
- # To Upper Case.
- CONFIGURATION=${CONFIGURATION^^}
-
- # Add "=1" suffix to each variable.
- IFS=' ' read -r -a array <<< "$CONFIGURATION"
-
- CONFIGURATION=""
- for element in "${array[@]}"
- do
- CONFIGURATION="$CONFIGURATION $element=1"
- done
-
- # MESOS-5433: `distcheck` is not currently supported by our CMake scripts.
- # MESOS-5624: In source build is not yet supported.
- # Also, we run `make` in addition to `make check` because the latter only
- # compiles stout and libprocess sources and tests.
- append_dockerfile "CMD ./bootstrap && mkdir build && cd build && cmake $CONFIGURATION .. && make -j8 check && make -j8"
- ;;
- *)
- echo "Unknown build tool $BUILDTOOL"
- exit 1
- ;;
-esac
+# Perform coverity build if requested.
+if [ -n "$COVERITY_TOKEN" ]
+ then
+ # Note currently the coverity build is only tested with ubuntu:14:04, autotools, and gcc.
+
+ # Download coverity tools, build using coverity wrapper and upload results.
+ append_dockerfile "ENV MESOS_VERSION $(grep "AC_INIT" configure.ac | sed 's/AC_INIT[(]\[mesos\], \[\(.*\)\][)]/\1/')"
+ append_dockerfile "RUN wget https://scan.coverity.com/download/linux64 --post-data \"token=$COVERITY_TOKEN&project=Mesos\" -O coverity_tool.tgz"
+ append_dockerfile "RUN tar xvf coverity_tool.tgz; mv cov-analysis-linux* cov-analysis"
+ append_dockerfile "CMD ./bootstrap && ./configure $CONFIGURATION && cov-analysis/bin/cov-build -dir cov-int make -j8 && tar czcf mesos.tgz cov-int && tail cov-int/build-log.txt && curl --form \"token=$COVERITY_TOKEN\" --form \"email=dev@mesos.apache.org\" --form \"file=@mesos.tgz\" --form \"version=$MESOS_VERSION\" --form \"description='Continious Coverity Build'\" https://scan.coverity.com/builds?project=Mesos"
+else
+ # Build and check Mesos.
+ case $BUILDTOOL in
+ autotools)
+ append_dockerfile "CMD ./bootstrap && ./configure $CONFIGURATION && make -j8 distcheck"
+ ;;
+ cmake)
+ # Transform autotools-like parameters to cmake-like.
+ # Remove "'".
+ CONFIGURATION=${CONFIGURATION//\'/""}
+ # Replace "-" with "_".
+ CONFIGURATION=${CONFIGURATION//-/"_"}
+ # Replace "__" with "-D".
+ CONFIGURATION=${CONFIGURATION//__/"-D"}
+ # To Upper Case.
+ CONFIGURATION=${CONFIGURATION^^}
+
+ # Add "=1" suffix to each variable.
+ IFS=' ' read -r -a array <<< "$CONFIGURATION"
+
+ CONFIGURATION=""
+ for element in "${array[@]}"
+ do
+ CONFIGURATION="$CONFIGURATION $element=1"
+ done
+
+ # MESOS-5433: `distcheck` is not currently supported by our CMake scripts.
+ # MESOS-5624: In source build is not yet supported.
+ # Also, we run `make` in addition to `make check` because the latter only
+ # compiles stout and libprocess sources and tests.
+ append_dockerfile "CMD ./bootstrap && mkdir build && cd build && cmake $CONFIGURATION .. && make -j8 check && make -j8"
+ ;;
+ *)
+ echo "Unknown build tool $BUILDTOOL"
+ exit 1
+ ;;
+ esac
+fi
# Generate a random image tag.
TAG=mesos-`date +%s`-$RANDOM