diff options
author | Arnstein Ressem <aressem@yahoo-inc.com> | 2017-06-14 14:48:48 +0200 |
---|---|---|
committer | Arnstein Ressem <aressem@yahoo-inc.com> | 2017-06-14 14:48:48 +0200 |
commit | c5348f715b0e156eeaebc1a56bdd3600761e0fa2 (patch) | |
tree | 2b3ecf57439ca31817f7d70d2c6d6b61561c32b1 /docker | |
parent | 65303e439b87b202739a9bbb2561d996df404312 (diff) | |
parent | b7f9e7ceaef72489d76683537973b639f8895b84 (diff) |
Merged master.
Diffstat (limited to 'docker')
-rw-r--r-- | docker/.gitignore | 1 | ||||
-rw-r--r-- | docker/Dockerfile.build | 6 | ||||
-rw-r--r-- | docker/Dockerfile.ci | 11 | ||||
-rw-r--r-- | docker/Dockerfile.run | 2 | ||||
-rw-r--r-- | docker/README.md | 4 | ||||
-rwxr-xr-x | docker/vespa-ci-internal.sh | 34 | ||||
-rwxr-xr-x | docker/vespa-ci.sh | 20 |
7 files changed, 77 insertions, 1 deletions
diff --git a/docker/.gitignore b/docker/.gitignore index e7a9c1347be..d8d0fbf70f1 100644 --- a/docker/.gitignore +++ b/docker/.gitignore @@ -1 +1,2 @@ *.rpm +vespa-ci-*.log diff --git a/docker/Dockerfile.build b/docker/Dockerfile.build index a0b935093eb..9aa35f2bd99 100644 --- a/docker/Dockerfile.build +++ b/docker/Dockerfile.build @@ -8,11 +8,13 @@ RUN yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/g/vesp devtoolset-6-gcc-c++ \ devtoolset-6-libatomic-devel \ devtoolset-6-binutils \ + git \ make \ cmake3 \ ccache \ Judy-devel \ lz4-devel \ + libzstd-devel \ zlib-devel \ maven \ libicu-devel \ @@ -26,6 +28,10 @@ RUN yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/g/vesp perl-Env \ perl-JSON \ perl-IO-Socket-IP \ + perl-Data-Dumper \ + perl-libwww-perl \ + perl-Net-INET6Glue \ + perl-URI \ sudo \ vespa-boost-devel \ vespa-libtorrent-devel \ diff --git a/docker/Dockerfile.ci b/docker/Dockerfile.ci new file mode 100644 index 00000000000..39a5317fe14 --- /dev/null +++ b/docker/Dockerfile.ci @@ -0,0 +1,11 @@ +FROM vespabuild + +COPY vespa-ci-internal.sh /vespa-ci-internal.sh + +# Build using non-root user 'vespabuilder' +RUN useradd --create-home -s /bin/bash vespabuilder +WORKDIR /home/vespabuilder +USER vespabuilder + +# Java requires proper locale for unicode +ENV LANG en_US.UTF-8 diff --git a/docker/Dockerfile.run b/docker/Dockerfile.run index e5ddc1c7903..d62faa5075c 100644 --- a/docker/Dockerfile.run +++ b/docker/Dockerfile.run @@ -3,5 +3,5 @@ FROM centos:7 # Needed to run vespa RUN yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/g/vespa/vespa/repo/epel-7/group_vespa-vespa-epel-7.repo && \ yum -y install epel-release && \ - yum -y install centos-release-scl + yum -y install centos-release-scl diff --git a/docker/README.md b/docker/README.md index 393d726cff2..e3105b9263a 100644 --- a/docker/README.md +++ b/docker/README.md @@ -13,6 +13,10 @@ Execute ```./build-vespa.sh <Vespa version number>``` to build Vespa from this s The produced rpms will be available in this folder after compiliation. The version number will be compiled into binaries, but has no other meaning than that. +## Building and testing Vespa +Execute ```./vespa-ci.sh <git commit>``` to build and test a specific branch/tag/commit. + + ## Running Vespa Execute ```./run-vespa.sh <Vespa version number>``` to start Vespa. diff --git a/docker/vespa-ci-internal.sh b/docker/vespa-ci-internal.sh new file mode 100755 index 00000000000..caa64824044 --- /dev/null +++ b/docker/vespa-ci-internal.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -e +set -x + +if [ $# -ne 1 ]; then + echo "Usage: $0 <git commit>" + echo "This script should not be called manually." + exit 1 +fi + +GIT_COMMIT=$1 +SOURCE_DIR=/home/vespabuilder/vespa +BUILD_DIR=/home/vespabuilder/build +NUM_CORES=$(nproc --all) +NUM_THREADS=$((${NUM_CORES} + ${NUM_CORES}/2)) + +mkdir "${SOURCE_DIR}" +mkdir "${BUILD_DIR}" +git clone --no-checkout --local --no-hardlinks file:///vespa "${SOURCE_DIR}" +cd "${SOURCE_DIR}" +git checkout --detach ${GIT_COMMIT} +source /opt/rh/devtoolset-6/enable || true +sh ./bootstrap.sh full +MAVEN_OPTS="-Xms512m -Xmx512m" mvn install +cd "${BUILD_DIR}" +cmake3 -DCMAKE_INSTALL_PREFIX=/opt/vespa \ + -DJAVA_HOME=/usr/lib/jvm/java-openjdk \ + -DEXTRA_LINK_DIRECTORY="/opt/vespa-boost/lib;/opt/vespa-libtorrent/lib;/opt/vespa-zookeeper-c-client/lib;/opt/vespa-cppunit/lib;/usr/lib64/llvm3.9/lib" \ + -DEXTRA_INCLUDE_DIRECTORY="/opt/vespa-boost/include;/opt/vespa-libtorrent/include;/opt/vespa-zookeeper-c-client/include;/opt/vespa-cppunit/include;/usr/include/llvm3.9" \ + -DCMAKE_INSTALL_RPATH="/opt/vespa/lib64;/opt/vespa-boost/lib;/opt/vespa-libtorrent/lib;/opt/vespa-zookeeper-c-client/lib;/opt/vespa-cppunit/lib;/usr/lib/jvm/java-1.8.0/jre/lib/amd64/server;/usr/include/llvm3.9" \ + -DCMAKE_BUILD_RPATH=/opt/vespa/lib64 \ + "${SOURCE_DIR}" +make -j ${NUM_THREADS} +make -j ${NUM_THREADS} test diff --git a/docker/vespa-ci.sh b/docker/vespa-ci.sh new file mode 100755 index 00000000000..58705eae339 --- /dev/null +++ b/docker/vespa-ci.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e +set -x + +if [ $# -ne 1 ]; then + echo "Usage: $0 <git commit>" + exit 1 +fi + +DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) +cd $DIR + +GIT_COMMIT=$1 +BUILD_DOCKER_IMAGE="vespabuild" +CI_DOCKER_IMAGE="vespaci" + +docker build -t "$BUILD_DOCKER_IMAGE" -f Dockerfile.build . +docker build -t "$CI_DOCKER_IMAGE" -f Dockerfile.ci . +docker run --rm -v $(pwd)/..:/vespa --entrypoint /vespa-ci-internal.sh "$CI_DOCKER_IMAGE" "$GIT_COMMIT" \ + 2>&1 | tee vespa-ci-${GIT_COMMIT}-$(date +%Y-%m-%dT%H:%M:%S%z).log |