From 567f6d6e839d1de951ea8d556c5ed50a61dad5f3 Mon Sep 17 00:00:00 2001 From: justinw Date: Thu, 26 Jul 2018 17:13:48 -0400 Subject: [PATCH] add dockerfile build steps and jenkinsfile parallel --- Dockerfile | 18 ++++++++++++++---- Jenkinsfile | 12 +++++++++++- ciscripts/buildscript.sh | 2 +- ciscripts/buildtests.sh | 3 +++ ciscripts/triggertests.sh | 8 ++++++++ 5 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 ciscripts/buildtests.sh create mode 100644 ciscripts/triggertests.sh diff --git a/Dockerfile b/Dockerfile index 2cdbef3dc6..49c67bd8e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,8 @@ FROM phusion/baseimage:0.9.19 ARG STEEM_STATIC_BUILD=ON ENV STEEM_STATIC_BUILD ${STEEM_STATIC_BUILD} +ARG BUILD_STEP +ENV BUILD_STEP ${BUILD_STEP} ENV LANG=en_US.UTF-8 @@ -51,6 +53,7 @@ RUN \ ADD . /usr/local/src/steem RUN \ + if [ "$BUILD_STEP" = "1" ] || [ ! "$BUILD_STEP" ] ; then \ cd /usr/local/src/steem && \ git submodule update --init --recursive && \ mkdir build && \ @@ -71,9 +74,11 @@ RUN \ PYTHONPATH=programs/build_helpers \ python3 -m steem_build_helpers.check_reflect && \ programs/build_helpers/get_config_check.sh && \ - rm -rf /usr/local/src/steem/build + rm -rf /usr/local/src/steem/build ; \ + fi RUN \ + if [ "$BUILD_STEP" = "2" ] || [ ! "$BUILD_STEP" ] ; then \ cd /usr/local/src/steem && \ git submodule update --init --recursive && \ mkdir build && \ @@ -98,9 +103,11 @@ RUN \ PYTHONPATH=programs/build_helpers \ python3 -m steem_build_helpers.check_reflect && \ programs/build_helpers/get_config_check.sh && \ - rm -rf /usr/local/src/steem/build + rm -rf /usr/local/src/steem/build ; \ + fi RUN \ + if [ "$BUILD_STEP" = "1" ] || [ ! "$BUILD_STEP" ] ; then \ cd /usr/local/src/steem && \ git submodule update --init --recursive && \ mkdir build && \ @@ -120,9 +127,11 @@ RUN \ mkdir -p /var/cobertura && \ gcovr --object-directory="../" --root=../ --xml-pretty --gcov-exclude=".*tests.*" --gcov-exclude=".*fc.*" --gcov-exclude=".*app*" --gcov-exclude=".*net*" --gcov-exclude=".*plugins*" --gcov-exclude=".*schema*" --gcov-exclude=".*time*" --gcov-exclude=".*utilities*" --gcov-exclude=".*wallet*" --gcov-exclude=".*programs*" --output="/var/cobertura/coverage.xml" && \ cd /usr/local/src/steem && \ - rm -rf /usr/local/src/steem/build + rm -rf /usr/local/src/steem/build ; \ + fi RUN \ + if [ "$BUILD_STEP" = "2" ] || [ ! "$BUILD_STEP" ] ; then \ cd /usr/local/src/steem && \ git submodule update --init --recursive && \ mkdir build && \ @@ -162,7 +171,8 @@ RUN \ && \ make -j$(nproc) && \ make install && \ - rm -rf /usr/local/src/steem + rm -rf /usr/local/src/steem ; \ + fi RUN \ apt-get remove -y \ diff --git a/Jenkinsfile b/Jenkinsfile index 4acd96bf72..812b565e74 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,7 +4,17 @@ pipeline { stages { stage('Build') { steps { - sh 'ciscripts/triggerbuild.sh' + parallel ( "Build tests": + { + node { + sh 'ciscripts/triggertests.sh' + } + }, + "Build docker image": { + node { + sh 'ciscripts/triggerbuild.sh' + } + }) } } } diff --git a/ciscripts/buildscript.sh b/ciscripts/buildscript.sh index cf3b3e5ae0..2534ded0e7 100755 --- a/ciscripts/buildscript.sh +++ b/ciscripts/buildscript.sh @@ -4,7 +4,7 @@ export IMAGE_NAME="steemit/steem:$BRANCH_NAME" if [[ $IMAGE_NAME == "steemit/steem:stable" ]] ; then IMAGE_NAME="steemit/steem:latest" fi -sudo docker build -t=$IMAGE_NAME . +sudo docker build --build-arg BUILD_STEP=2 -t=$IMAGE_NAME . sudo docker login --username=$DOCKER_USER --password=$DOCKER_PASS sudo docker push $IMAGE_NAME sudo docker run -v /var/jenkins_home:/var/jenkins $IMAGE_NAME cp -r /var/cobertura /var/jenkins diff --git a/ciscripts/buildtests.sh b/ciscripts/buildtests.sh new file mode 100644 index 0000000000..44ddbdbaf3 --- /dev/null +++ b/ciscripts/buildtests.sh @@ -0,0 +1,3 @@ +#!/bin/bash +set -e +sudo docker build --build-arg BUILD_STEP=1 -t=steemit/steem:tests . \ No newline at end of file diff --git a/ciscripts/triggertests.sh b/ciscripts/triggertests.sh new file mode 100644 index 0000000000..cf9478231e --- /dev/null +++ b/ciscripts/triggertests.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e +if /bin/bash $WORKSPACE/ciscripts/buildtests.sh; then + echo BUILD SUCCESS +else + echo BUILD FAILURE + exit 1 +fi \ No newline at end of file