summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorArnstein Ressem <aressem@yahoo-inc.com>2017-06-14 14:48:48 +0200
committerArnstein Ressem <aressem@yahoo-inc.com>2017-06-14 14:48:48 +0200
commitc5348f715b0e156eeaebc1a56bdd3600761e0fa2 (patch)
tree2b3ecf57439ca31817f7d70d2c6d6b61561c32b1 /docker
parent65303e439b87b202739a9bbb2561d996df404312 (diff)
parentb7f9e7ceaef72489d76683537973b639f8895b84 (diff)
Merged master.
Diffstat (limited to 'docker')
-rw-r--r--docker/.gitignore1
-rw-r--r--docker/Dockerfile.build6
-rw-r--r--docker/Dockerfile.ci11
-rw-r--r--docker/Dockerfile.run2
-rw-r--r--docker/README.md4
-rwxr-xr-xdocker/vespa-ci-internal.sh34
-rwxr-xr-xdocker/vespa-ci.sh20
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