From afbbae65b0c55545a53ecd84c119174a8d7a2deb Mon Sep 17 00:00:00 2001
From: josh <josh@elixxir.io>
Date: Tue, 8 Mar 2022 12:31:38 -0800
Subject: [PATCH] Improve download.sh by adding feature branch functionality

---
 download.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 58 insertions(+), 8 deletions(-)

diff --git a/download.sh b/download.sh
index d162367..7957b82 100755
--- a/download.sh
+++ b/download.sh
@@ -1,47 +1,97 @@
 #!/bin/bash
+
+# If we are on a feature branch, add it to the eval list
+FBRANCH=$(git rev-parse --abbrev-ref HEAD)
+if [[ "$CI_BUILD_REF_NAME" != "" ]]; then
+    FBRANCH=$CI_BUILD_REF_NAME
+fi
+FBRANCH=$(echo $FBRANCH | grep feature)
+# Also check for the branch name without the "feature" on it.
+FBRANCH2=$(echo $FBRANCH | sed 's/feature\///g')
+
 LOCALPATH=$(pwd)
-echo "Local path: $LOCALPATH"
+BINARYPATH=$LOCALPATH/bin
+
+# Clean up pathing
 rm -rf gitlab.com/*
 rm -rf bin/*
 mkdir -p bin
+mkdir -p bin
+
+CHECKOUTBRANCH=""
+setCheckoutBranch() {
+  CHECKOUTBRANCH="release"
+  if [ -z "$FBRANCH"]; then
+    CHECKOUTBRANCH=$FBRANCH
+  fi
+  if [ -z "$FBRANCH2"]; then
+    CHECKOUTBRANCH=$FBRANCH2
+  fi
+
+}
+
+# Download client
 git clone https://git.xx.network/elixxir/client gitlab.com/elixxir/client
 pushd gitlab.com/elixxir/client
+setCheckoutBranch
+git checkout $CHECKOUTBRANCH
 go mod vendor -v
 go mod tidy
-go build -mod vendor -o "$LOCALPATH/bin/client" main.go
+go build -mod vendor -o "$BINARYPATH/client" main.go
 popd
+
+# Download UD
 echo "Downloading user discovery..."
 git clone https://git.xx.network/elixxir/user-discovery-bot gitlab.com/elixxir/user-discovery-bot
 pushd gitlab.com/elixxir/user-discovery-bot
+setCheckoutBranch
+git checkout $CHECKOUTBRANCH
 go mod vendor -v
 go mod tidy
-go build -mod vendor -o "$LOCALPATH/bin/udb" main.go
+go build -mod vendor -o "$BINARYPATH/udb" main.go
 popd
-echo "Downloading permissioning server..."
+
+# Download scheduling server
+echo "Downloading scheduling server..."
 git clone https://git.xx.network/elixxir/registration gitlab.com/elixxir/registration
 pushd gitlab.com/elixxir/registration
+setCheckoutBranch
+git checkout $CHECKOUTBRANCH
 go mod vendor -v
 go mod tidy
-go build -mod vendor -o "$LOCALPATH/bin/permissioning" main.go
+go build -mod vendor -o "$BINARYPATH/permissioning" main.go
 popd
+
+# Download client registrar
 echo "Downloading client registrar"
 git clone https://git.xx.network/elixxir/client-registrar.git gitlab.com/elixxir/client-registrar
 pushd gitlab.com/elixxir/client-registrar
+setCheckoutBranch
+git checkout $CHECKOUTBRANCH
 go mod vendor -v
 go mod tidy
-go build -mod vendor -o "$LOCALPATH/bin/client-registrar" gitlab.com/elixxir/client-registrar
+go build -mod vendor -o "$BINARYPATH/client-registrar" gitlab.com/elixxir/client-registrar
 popd
+
+# Download cMix node
 echo "Downloading cMix node..."
 git clone https://git.xx.network/elixxir/server gitlab.com/elixxir/server
 pushd gitlab.com/elixxir/server
+setCheckoutBranch
+git checkout $CHECKOUTBRANCH
 go mod vendor -v
 go mod tidy
-go build -mod vendor -o "$LOCALPATH/bin/server" main.go
+go build -mod vendor -o "$BINARYPATH/server main".go
 popd
+
+# Download cMix gateway
 echo "Downloading cMix gateway..."
 git clone https://git.xx.network/elixxir/gateway gitlab.com/elixxir/gateway
 pushd gitlab.com/elixxir/gateway
+setCheckoutBranch
+git checkout $CHECKOUTBRANCH
 go mod vendor -v
 go mod tidy
-go build -mod vendor -o "$LOCALPATH/bin/gateway" main.go
+make clean
+go build -mod vendor -o "$BINARYPATH/gateway" main.go
 popd
-- 
GitLab