The script pulls all branches and now can check out a specific branch or commit-id
[osm/devops.git] / jenkins / RO / start_build
index f3d2117..620ab0c 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/bash
 #
+#   Copyright 2016 Telefónica Investigación y Desarrollo, S.A.U.
+#
 #   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
@@ -12,6 +14,8 @@
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 # 
+# Authors:
+#    - Gerardo Garcia - gerardo.garciadeblas@telefonica.com
 # 
 
 HERE=$(realpath $(dirname $0))
@@ -23,30 +27,45 @@ export OSM_MDG=RO
 OSM_load_config
 
 
-# Here is an example for how to handle an incremental build
+# 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 
+    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
+    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
-       git checkout $1 || FATAL "git checkout '$1' didn't work"
+    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"
 
-### for start_build
-### put your commands here to
-### build, test and produce coverage reports
+INFO "  cleaning .pyc"
+rm -f *.pyc
+INFO "  installing openmano packages and dependencies from current repo (--noclone)"
+./scripts/install-openmano.sh --develop --noclone -q
+INFO "  compiling *.py"
+python -m py_compile *.py   #&&     #uncomment to concatenate commands
+#basic test HERE            #&&     #uncomment to concatenate commands
 
-rm *.pyc
-python -m py_compile *.py
 RC=$?
-
 INFO "done, RC=$RC"
 exit $RC