18870: Flexible branch naming
[arvados.git] / tools / salt-install / installer.sh
index 7bd789f6890af0d8915992dc69c0c4e90e95e252..b901651e7c7272633d4a50bf22b056aa8b815058 100755 (executable)
@@ -64,20 +64,34 @@ case "$subcmd" in
 
        source ${CONFIG_FILE}
 
-       git commit -m"prepare for deploy"
+       set -x
+
+       BRANCH=$(git branch --show-current)
+
+       git add -A
+       if ! git diff --cached --exit-code ; then
+           git commit -m"prepare for deploy"
+       fi
        for NODE in "${!NODES[@]}"
        do
-           if ! ssh $NODE test -d arvados-setup.git ; then
-               ssh $NODE git init --bare arvados-setup.git
-               git add remote $NODE $DEPLOY_USER@$NODE:arvados-setup.git
-               git push $NODE
-               ssh $NODE git clone arvados-setup.git arvados-setup
+           if test $NODE = localhost ; then
+               sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}
+           else
+               if ! ssh $NODE test -d arvados-setup ; then
+                   ssh $NODE git init --bare arvados-setup.git
+                   if ! git remote add $NODE $DEPLOY_USER@$NODE:arvados-setup.git ; then
+                       git remote set-url $NODE $DEPLOY_USER@$NODE:arvados-setup.git
+                   fi
+                   git push $NODE $BRANCH
+                   ssh $NODE git clone arvados-setup.git arvados-setup
+               fi
+
+               git push $NODE $BRANCH
+               ssh $NODE git -C arvados-setup checkout $BRANCH
+               ssh $NODE git -C arvados-setup pull
+
+               ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
            fi
-
-           git push $NODE master
-           ssh $NODE git -C arvados-setup pull
-
-           ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
        done
        ;;
     *)