Tools to automate repo updates, tag creation and deletion 29/2029/1
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 13 Jul 2017 13:45:28 +0000 (15:45 +0200)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 13 Jul 2017 13:45:28 +0000 (15:45 +0200)
Change-Id: I66a3ea2282836bd11b2a3ee273d73f7969823b4f
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
tools/deletetag.sh [new file with mode: 0755]
tools/newtag.sh [new file with mode: 0755]
tools/update.sh [new file with mode: 0755]

diff --git a/tools/deletetag.sh b/tools/deletetag.sh
new file mode 100755 (executable)
index 0000000..9e915a0
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/bash
+if [ $# -ne 2 ]; then
+    echo "Usage $0 <repo> <tag>"
+    exit 1
+fi
+
+TAG="$2"
+tag_header="OSM Release TWO:"
+tag_message="$tag_header version $TAG"
+
+modules="juju-charms devops descriptor-packages openvim RO SO UI osmclient"
+list=""
+for i in $modules; do
+    if [ "$1" == "$i" -o "$1" == "all" ]; then
+        list="$1"
+        break
+    fi
+done
+
+[ "$1" == "all" ] && list=$modules
+
+if [ -z "$list" ]; then
+    echo "Repo must be one of these: $modules all"
+    exit 1
+fi
+
+for i in $list; do
+    echo
+    echo $i
+    git -C $i fetch
+    echo "Deleting tag $tag in repo $i"
+    git -C $i tag -d $tag
+    git -C $i push origin :refs/tags/$tag
+    sleep 2
+done
+
+exit 0
+
diff --git a/tools/newtag.sh b/tools/newtag.sh
new file mode 100755 (executable)
index 0000000..78cd4bb
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/bash
+if [ $# -ne 2 ]; then
+    echo "Usage $0 <repo> <tag>"
+    exit 1
+fi
+
+CURRENT_BRANCH="v2.0"
+TAG="$2"
+tag_header="OSM Release TWO:"
+tag_message="$tag_header version $TAG"
+
+modules="juju-charms devops descriptor-packages openvim RO SO UI osmclient"
+list=""
+for i in $modules; do
+    if [ "$1" == "$i" -o "$1" == "all" ]; then
+        list="$1"
+        break
+    fi
+done
+
+[ "$1" == "all" ] && list=$modules
+
+if [ -z "$list" ]; then
+    echo "Repo must be one of these: $modules all"
+    exit 1
+fi
+
+for i in $list; do
+    echo
+    echo $i
+    if [ "$i" == "juju-charms" ] && [ "$1" == "all" ] ; then
+        #This is to allow "./newtag.sh all v2.0.0", and still checkout master in "juju-charms" before tagging
+        git -C $i checkout master
+    else
+        git -C $i checkout $CURRENT_BRANCH
+    fi
+    git -C $i pull --rebase
+    git -C $i tag -a $TAG -m"$tag_message"
+    git -C $i push origin $TAG --follow-tags
+    sleep 2
+done
+
+exit 0
+
diff --git a/tools/update.sh b/tools/update.sh
new file mode 100755 (executable)
index 0000000..7960226
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/bash
+if [ $# -lt 1 -o $# -gt 2 ]; then
+    echo "Usage $0 <repo> [<branch>]"
+    exit 1
+fi
+
+BRANCH="master"
+if [ $# -ge 2 ]; then
+    BRANCH=$2
+fi
+
+modules="juju-charms devops descriptor-packages openvim RO SO UI osmclient"
+list=""
+for i in $modules; do
+    if [ "$1" == "$i" -o "$1" == "all" ]; then
+        list="$1"
+        break
+    fi
+done
+
+[ "$1" == "all" ] && list=$modules
+
+if [ "$1" == "juju-charms" ] && [ "$BRANCH" != "master" ]; then
+    echo "Repo $1 does not have branch $BRANCH"
+    exit 1
+fi
+
+if [ -z "$list" ]; then
+    echo "Repo must be one of these: $modules all"
+    exit 1
+fi
+
+for i in $list; do
+    echo
+    echo $i
+    git -C $i fetch
+    if [ "$i" == "juju-charms" ] && [ "$1" == "all" ] ; then
+        #This is to allow "./update.sh all v2.0", and still update "juju-charms" with master
+        git -C $i checkout master
+    else
+        git -C $i checkout $BRANCH
+    fi
+    git -C $i pull --rebase
+done
+
+exit 0
+