From 2455319d8aa4e97d6fa0047ae7ffec2399d6045c Mon Sep 17 00:00:00 2001 From: Bryan Sullivan Date: Wed, 31 Jan 2018 19:21:04 -0800 Subject: Fix build process; add clearwater-live-test JIRA: MODELS-2 Change-Id: I8d8e6300959d788aeae2caef632c505265bae9c4 Signed-off-by: Bryan Sullivan --- build/clearwater-docker.sh | 63 ++++++++++++++++++----------------- build/clearwater-live-test.sh | 76 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 32 deletions(-) create mode 100644 build/clearwater-live-test.sh (limited to 'build') diff --git a/build/clearwater-docker.sh b/build/clearwater-docker.sh index 9fa4bde..8e84618 100644 --- a/build/clearwater-docker.sh +++ b/build/clearwater-docker.sh @@ -42,36 +42,6 @@ function log() { echo "$f:$l ($(date)) $1" } -function build() { - log "Starting clearwater-docker build process" - if [[ -d /tmp/clearwater-docker ]]; then rm -rf /tmp/clearwater-docker; fi - - log "Cloning clearwater-docker repo to /tmp/clearwater-docker" - git clone https://github.com/Metaswitch/clearwater-docker.git \ - /tmp/clearwater-docker - - log "Building the images" - cd /tmp/clearwater-docker - vnfc="base astaire cassandra chronos bono ellis homer homestead homestead-prov ralf sprout" - for i in $vnfc ; do - log "Building $i" - sudo docker build $cache -t clearwater/$i $i - done -} - -function push() { - log "push images to docker hub" - for i in $vnfc ; do - log "Tagging the image as $hub_user/clearwater-$i:$tag" - id=$(sudo docker images | grep clearwater/$i | awk '{print $3}') - id=$(echo $id | cut -d ' ' -f 1) - sudo docker tag $id $hub_user/clearwater-$i:$tag - - log "Pushing the image to dockerhub as $hub_user/clearwater-$i" - sudo docker push $hub_user/clearwater-$i - done -} - hub_user=$1 tag=$2 cache="$3" @@ -85,7 +55,36 @@ else sudo yum update -y fi -build -push +if [[ "$cache" == "--no-cache" ]]; then + log "Purge old images" + images=$(sudo docker images clearwater-* | awk '/clearwater/ {print $1}') + for image in $images ; do sudo docker image rm $image; done +fi + +log "Starting clearwater-docker build process" +if [[ -d /tmp/clearwater-docker ]]; then rm -rf /tmp/clearwater-docker; fi + +log "Cloning clearwater-docker repo to /tmp/clearwater-docker" +git clone --recursive https://github.com/Metaswitch/clearwater-docker.git \ + /tmp/clearwater-docker + +log "Building the images" +cd /tmp/clearwater-docker +vnfc="base astaire cassandra chronos bono ellis homer homestead homestead-prov ralf sprout" +for i in $vnfc ; do + log "Building $i" + if [[ "$i" != "base" ]]; then + log "Reference $hub_user/clearwater-base:$tag" + sed -i -- "s~FROM clearwater/base~FROM $hub_user/clearwater-base:$tag~" \ + $i/Dockerfile + fi + sudo docker build $cache -t clearwater-$i $i + log "Tagging the image as $hub_user/clearwater-$i:$tag" + id=$(sudo docker images | grep "clearwater-$i " | awk '{print $3}') + id=$(echo $id | cut -d ' ' -f 1) + sudo docker tag $id $hub_user/clearwater-$i:$tag + log "Pushing the image to dockerhub as $hub_user/clearwater-$i" + sudo docker push $hub_user/clearwater-$i +done cd $WORK_DIR diff --git a/build/clearwater-live-test.sh b/build/clearwater-live-test.sh new file mode 100644 index 0000000..a4db776 --- /dev/null +++ b/build/clearwater-live-test.sh @@ -0,0 +1,76 @@ +#!/bin/bash +# Copyright 2018 AT&T Intellectual Property, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#. What this is: Build script for the github clearwater-live-test project +#. https://github.com/Metaswitch/clearwater-live-test +#. +#. Prerequisites: +#. Docker hub user logged on so images can be pushed to docker hub, i.e. via +#. $ docker login -u +#. +#. Usage: +#. bash clearwater-live-test.sh [--no-cache] +#. hub_user: username for dockerhub +#. tag: tag to apply to the built images +#. --no-cache: build clean +#. +#. Status: this is a work in progress, under test. + +trap 'fail' ERR + +fail() { + log "Build Failed!" + exit 1 +} + +function log() { + f=$(caller 0 | awk '{print $2}') + l=$(caller 0 | awk '{print $1}') + echo "" + echo "$f:$l ($(date)) $1" +} + +hub_user=$1 +tag=$2 +cache="$3" +dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` +export WORK_DIR=$(pwd) + +log "Update package repos" +if [ "$dist" == "Ubuntu" ]; then + sudo apt-get update +else + sudo yum update -y +fi + +log "Starting clearwater-live-test build process" +if [[ -d /tmp/clearwater-live-test ]]; then rm -rf /tmp/clearwater-live-test; fi + +log "Cloning clearwater-live-test repo to /tmp/clearwater-live-test" +git clone --recursive https://github.com/Metaswitch/clearwater-live-test.git \ + /tmp/clearwater-live-test +cd /tmp/clearwater-live-test + +log "Building the image" +sudo docker build $cache -t clearwater/clearwater-live-test . + +log "Tagging the image as $hub_user/clearwater-live-test:$tag" +id=$(sudo docker images | grep "clearwater-live-test " | awk '{print $3}') +id=$(echo $id | cut -d ' ' -f 1) +sudo docker tag $id $hub_user/clearwater-live-test:$tag + +log "Pushing the image to dockerhub as $hub_user/clearwater-live-test" +sudo docker push $hub_user/clearwater-live-test + -- cgit 1.2.3-korg