refactored the git checkout code 18/518/1
authorJeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Thu, 6 Oct 2016 23:17:05 +0000 (16:17 -0700)
committerJeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Thu, 6 Oct 2016 23:17:05 +0000 (16:17 -0700)
Signed-off-by: Jeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
jenkins/RO/start_build
jenkins/SETTINGS
jenkins/SO/start_build
jenkins/UI/start_build
jenkins/common/all_funcs
jenkins/common/git_functions [new file with mode: 0644]
jenkins/common/logging
jenkins/template/start_build

index 4c9adfc..c711cd7 100755 (executable)
@@ -25,36 +25,9 @@ OSM_JENKINS=$(dirname $HERE)
 # SET YOU MDG repository name here
 export OSM_MDG=RO
 OSM_load_config
+OSM_git_checkout "$@"
 
 
-# Updates all the branches in the local repo (clones if it does not exist)
-if [ -d $OSM_MDG ]; then
-    INFO "reusing existing workspace"
-    cd $OSM_MDG
-    git pull --all
-    #git checkout master  #to make sure that we are in the right branch before pulling the code
-    #git pull
-else
-    INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-    git clone $OSM_GIT_URL/$OSM_MDG
-    cd $OSM_MDG
-    for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done
-fi
-
-if [ $# -gt 0 ]; then
-    if [ "$1" = "checkout" ]; then
-        INFO "Code to compile: '$2'"
-        git checkout $2
-    else
-        INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-    fi
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
-
 INFO "starting build"
 
 INFO "  cleaning .pyc"
index 50bef01..c0a2c1f 100644 (file)
 #
 # base url for all repositories
 OSM_GIT_URL=https://osm.etsi.org/gerrit/osm
+#
+# OSM_USE_LOCAL_DEVOPS
+#
+# this option disables the clone inside the
+# the container and instead copies this directory tree
+# into the container. Very useful for testing
+# default is false
+#
+# OSM_USE_LOCAL_DEVOPS=true
index 8094a39..a672e14 100755 (executable)
@@ -25,32 +25,9 @@ OSM_JENKINS=$(dirname $HERE)
 # SET YOU MDG repository name here
 export OSM_MDG=SO
 OSM_load_config
+OSM_git_checkout "$@"
 
-
-# Here is an example for how to handle an incremental build
-if [ -d $OSM_MDG ]; then
-    INFO "reusing existing workspace"
-    cd $OSM_MDG
-    git pull 
-else
-    INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-    git clone $OSM_GIT_URL/$OSM_MDG
-    cd $OSM_MDG
-fi
-
-if [ $# -gt 0 ]; then
-    if [ "$1" = "checkout" ]; then
-        INFO "Code to compile: '$2'"
-        git checkout $2
-    else
-        INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-    fi
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
+trap 'WARNING "INTERRUPT"; exit 1' INT
 
 INFO "starting build"
 make clean || FATAL "make clean failed"
index af495e9..50b2e06 100755 (executable)
@@ -25,41 +25,15 @@ OSM_JENKINS=$(dirname $HERE)
 # SET YOU MDG repository name here
 export OSM_MDG=UI
 OSM_load_config
+OSM_git_checkout "$@"
 
 
-# Here is an example for how to handle an incremental build
-if [ -d $OSM_MDG ]; then
-       INFO "reusing existing workspace"
-       cd $OSM_MDG
-       git pull 
-else
-       INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-       git clone $OSM_GIT_URL/$OSM_MDG
-       cd $OSM_MDG
-fi
-
-if [ $# -gt 0 ]; then
-    if [ "$1" = "checkout" ]; then
-        INFO "Code to compile: '$2'"
-        git checkout $2
-    else
-        INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-        git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-        git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-    fi
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
-
 INFO "starting build"
 make clean || FATAL "Make clean failed"
 make -j16 || FATAL "Make failed"
 sudo make install || FATAL "Make install Failed"
 
-RC=0
-
-INFO "done, RC=$RC"
-exit $RC
+INFO "build done"
+exit 0
 
 
index 10b7650..a847108 100644 (file)
@@ -22,9 +22,7 @@ if [ -z "$OSM_JENKINS" ]; then
        export OSM_JENKINS=$(realpath $(dirname ${BASH_SOURCE[0]} ))
 fi
 
-. ${OSM_JENKINS}/common/logging
-INFO "logging sourced"
-. ${OSM_JENKINS}/common/config
-INFO "config sourced"
-. ${OSM_JENKINS}/common/container
-INFO "container sourced"
+for file in logging config container git_functions; do
+       . ${OSM_JENKINS}/common/$file
+       INFO "$file sourced"
+done
diff --git a/jenkins/common/git_functions b/jenkins/common/git_functions
new file mode 100644 (file)
index 0000000..7856623
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+
+GIT() {
+
+       CMD git "$@"
+}
+
+
+OSM_git_checkout() {
+
+    # Updates all the branches in the local repo (clones if it does not exist)
+    if [ -d $OSM_MDG ]; then
+        INFO "reusing existing workspace"
+        cd $OSM_MDG
+        GIT pull --all
+        #git checkout master  #to make sure that we are in the right branch before pulling the code
+        #git pull
+    else
+        INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
+        GIT clone $OSM_GIT_URL/$OSM_MDG
+        cd $OSM_MDG
+        for remote in `git branch -r`; do GIT branch --track ${remote#origin/} $remote; done
+    fi
+    
+    if [ $# -gt 0 ]; then
+        if [ "$1" = "checkout" ]; then
+            INFO "Code to compile: '$2'"
+            GIT checkout $2
+        else
+            INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
+            GIT fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
+            GIT checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
+        fi
+    else
+        INFO "Code to compile: master"
+        GIT checkout master
+    fi
+
+}
index 3eb4a0d..a95b563 100644 (file)
@@ -35,13 +35,13 @@ print_stack() {
 
 
 FATAL() { 
-       echo "### $(date) ${FUNCNAME[1]}: FATAL error: $*" >&2
+       echo -e "\n### $(date) ${FUNCNAME[1]}: FATAL error: $*" >&2
        print_stack
        exit 1
 }
        
 WARNING() { 
-       echo "### $(date) ${FUNCNAME[1]}: WARNING error: $*" >&2
+       echo -e "\n### $(date) ${FUNCNAME[1]}: WARNING error: $*" >&2
 }
 
 INFO() { 
@@ -51,3 +51,11 @@ INFO() {
 DEBUG() { 
        echo "#   $(date) ${FUNCNAME[1]}: $*" >&2
 }
+
+CMD() {
+       echo "# executing '$*' ..."
+       "$@"
+       rc=$?
+       echo "# .... '$*' done RC was $rc"
+       return $rc
+}
index 2bd9074..43ef161 100755 (executable)
@@ -25,28 +25,7 @@ OSM_JENKINS=$(dirname $HERE)
 # SET YOU MDG repository name here
 export OSM_MDG=XXXX
 OSM_load_config
-
-
-# Here is an example for how to handle an incremental build
-if [ -d $OSM_MDG ]; then
-       INFO "reusing existing workspace"
-       cd $OSM_MDG
-       git pull 
-else
-       INFO "cloning MDG $OSM_MDG from $OSM_GIT_URL/$OSM_MDG"
-       git clone $OSM_GIT_URL/$OSM_MDG
-       cd $OSM_MDG
-fi
-
-# Gerrit arranges to call this script with two parameters -- the refspec and commit ID that needs to be built
-if [ $# -gt 0 ]; then
-    INFO "Code to compile: gerrit refspec '$1', commit-id: '$2'"
-    git fetch origin $1 || FATAL "git fetch origin '$1' didn't work"
-    git checkout -f $2 || FATAL "git checkout -f '$2' didn't work"
-else
-    INFO "Code to compile: master"
-    git checkout master
-fi
+OSM_git_checkout "$@"
 
 INFO "starting build"
 ### for start_build