aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlaf Flebbe <of@oflebbe.de>2017-01-29 15:51:01 +0100
committerEvans Ye <evansye@apache.org>2017-06-28 22:42:55 +0800
commit5ea264beee555c55816dc775981900e747025cca (patch)
tree356747cf61151bec581aa4fd84f0d1b0b5281ede
parentdb1fb87e314b59120fb9425a17a0e095080befd1 (diff)
BIGTOP-2679: Streamline CI Jobs
Signed-off-by: Evans Ye <evansye@apache.org>
-rw-r--r--.dockerignore1
-rwxr-xr-xbigtop-ci/build.sh54
-rwxr-xr-xbigtop-ci/entrypoint.sh4
3 files changed, 58 insertions, 1 deletions
diff --git a/.dockerignore b/.dockerignore
index a7b219a4..150d143f 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -15,5 +15,4 @@
build
output
-bigtop-packages
dl
diff --git a/bigtop-ci/build.sh b/bigtop-ci/build.sh
new file mode 100755
index 00000000..fc1f52f6
--- /dev/null
+++ b/bigtop-ci/build.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+while [[ $# -gt 1 ]]
+do
+key="$1"
+case $key in
+ -t|--target)
+ TARGET="$2"
+ shift
+ ;;
+ -o|--os)
+ OS="$2"
+ shift
+ ;;
+ -n|--nexus)
+ NEXUS="--net=container:nexus"
+ CONFIGURE_NEXUS="configure-nexus"
+ shift
+ ;;
+ *)
+ echo "usage build.sh --os debian-8|centos-7|... --target hadoop|tez|..."
+ exit 1 # unknown option
+ ;;
+esac
+shift
+done
+
+# prepare source image
+cat >Dockerfile <<EOF
+FROM bigtop/slaves:$OS
+# copy source to container
+COPY . /var/lib/jenkins/bigtop
+# make it belong to compile account
+RUN chown -R jenkins /var/lib/jenkins/bigtop
+# define default user jenkins
+USER jenkins
+WORKDIR /var/lib/jenkins/bigtop
+ENTRYPOINT [ "bigtop-ci/entrypoint.sh" ]
+# initialize gradle
+RUN bigtop-ci/entrypoint.sh
+# make it a volume, performancewise
+VOLUME /var/lib/jenkins
+EOF
+
+# build source image
+docker build -t image-$OS .
+
+# run build
+docker run --name container-$OS-$TARGET-$$ $NEXUS image-$OS $CONFIGURE_NEXUS $TARGET
+
+# save result
+mkdir -p output
+docker cp container-$OS-$TARGET-$$:/var/lib/jenkins/bigtop/output .
+docker rm -v container-$OS-$TARGET-$$
diff --git a/bigtop-ci/entrypoint.sh b/bigtop-ci/entrypoint.sh
new file mode 100755
index 00000000..bc580e10
--- /dev/null
+++ b/bigtop-ci/entrypoint.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+. /etc/profile.d/bigtop.sh
+exec ./gradlew "$@"