diff --git a/gitlab-build.sh b/gitlab-build.sh
index d02bb1b6a16b3689eaeff131695e1aaada07e291..2325aa8f435b02c928b3dcbe0122e5b29dabe971 100755
--- a/gitlab-build.sh
+++ b/gitlab-build.sh
@@ -10,6 +10,52 @@ export VER_LATEST_EXTRA=wip
 export PATCHLEVEL=$(date +%Y%m%d)
 export VERSION_TWEAK=$(( $(date "+10#%H * 60 + 10#%M") ))
 
+function do_build() {
+	cat << EOF > PAGES
+PAGES_URL =  $PAGES_URL
+PAGES_SLUG = $PAGES_SLUG
+GITLAB_USER = $GITLAB_USER
+PROJECT_BRANCH = $PROJECT_BRANCH
+GITLAB_HOST = $GITLAB_HOST
+PROJECT_REPO = $PROJECT_REPO
+EOF
+
+	cat << EOF > VERSION
+VERSION_MAJOR = $VERSION_MAJOR
+VERSION_MINOR = $VERSION_MINOR
+PATCHLEVEL = $PATCHLEVEL
+VERSION_TWEAK = $VERSION_TWEAK
+EXTRAVERSION = $EXTRAVERSION
+EOF
+
+	mkdir -p public
+	cat <<HERE > public/index.html
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="refresh" content="0; url='latest/'" />
+  </head>
+  <body>
+    <p>Please follow <a href="latest/">this link</a>.</p>
+  </body>
+</html>
+HERE
+
+	echo "**** Updating $PAGES_URL/$VER_DIR ****"
+
+	sphinx-build -b html . public/$VER_DIR/
+	sphinx-build -M latexpdf . public/$VER_DIR/
+	mv public/$VER_DIR/latex/beagleboard-docs.pdf public/$VER_DIR/
+	rm -rf public/$VER_DIR/latex
+
+	if [ "$CI_COMMIT_TAG" != "" ]; then
+		if [ "$VER_DIR" = "latest" ]; then
+			cp public/index.html /var/www/docs
+		fi
+		rsync -v -a --delete public/$VER_DIR/. /var/www/docs/$VER_DIR
+	fi
+}
+
 if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
 	export VER_DIR=latest
 	export PAGES_URL=$CI_PAGES_URL
@@ -21,6 +67,7 @@ if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
 	export VERSION_MAJOR=$VER_LATEST_MAJOR
 	export VERSION_MINOR=$VER_LATEST_MINOR
 	export EXTRAVERSION=$VER_LATEST_EXTRA
+	do_build
 elif [ "$CI_COMMIT_BRANCH" != "" ]; then
 	export VER_DIR=$CI_COMMIT_BRANCH
 	export PAGES_URL=$CI_PAGES_URL
@@ -33,6 +80,7 @@ elif [ "$CI_COMMIT_BRANCH" != "" ]; then
 	export VERSION_MAJOR=${BRANCH_VER[0]}
 	export VERSION_MINOR=${BRANCH_VER[1]}
 	export EXTRAVERSION=wip
+	do_build
 elif [ "$CI_COMMIT_TAG" != "" ]; then
 	export TAG_SPLIT=($(echo $CI_COMMIT_TAG | tr "-" "\n"))
 	export TAG_VER=($(echo ${TAG_SPLIT[0]} | tr "." "\n"))
@@ -48,7 +96,8 @@ elif [ "$CI_COMMIT_TAG" != "" ]; then
 		export GITLAB_HOST=$CI_SERVER_HOST
 		export PROJECT_BRANCH=$GIT_BRANCH
 		export PROJECT_REPO=docs.beagleboard.io
-	else
+		do_build
+	elif [ "$GIT_BRANCH" != "" ]; then
 		export VER_DIR=$GIT_BRANCH
 		export PAGES_URL=https://docs.beagleboard.org
 		export PAGES_SLUG=$GIT_BRANCH
@@ -56,6 +105,9 @@ elif [ "$CI_COMMIT_TAG" != "" ]; then
 		export GITLAB_HOST=$CI_SERVER_HOST
 		export PROJECT_BRANCH=$GIT_BRANCH
 		export PROJECT_REPO=docs.beagleboard.io
+		do_build
+	else
+		echo "***** Branch not found for tag *****"
 	fi
 else
 	echo "***** Not on a branch or tag *****"
@@ -63,47 +115,3 @@ fi
 
 env
 
-cat << EOF > PAGES
-PAGES_URL =  $PAGES_URL
-PAGES_SLUG = $PAGES_SLUG
-GITLAB_USER = $GITLAB_USER
-PROJECT_BRANCH = $PROJECT_BRANCH
-GITLAB_HOST = $GITLAB_HOST
-PROJECT_REPO = $PROJECT_REPO
-EOF
-
-cat << EOF > VERSION
-VERSION_MAJOR = $VERSION_MAJOR
-VERSION_MINOR = $VERSION_MINOR
-PATCHLEVEL = $PATCHLEVEL
-VERSION_TWEAK = $VERSION_TWEAK
-EXTRAVERSION = $EXTRAVERSION
-EOF
-
-mkdir -p public
-cat <<HERE > public/index.html
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="refresh" content="0; url='latest/'" />
-  </head>
-  <body>
-    <p>Please follow <a href="latest/">this link</a>.</p>
-  </body>
-</html>
-HERE
-
-echo "**** Updating $PAGES_URL/$VER_DIR ****"
-
-sphinx-build -b html . public/$VER_DIR/
-sphinx-build -M latexpdf . public/$VER_DIR/
-mv public/$VER_DIR/latex/beagleboard-docs.pdf public/$VER_DIR/
-rm -rf public/$VER_DIR/latex
-
-if [ "$CI_COMMIT_TAG" != "" ]; then
-	if [ "$VER_DIR" = "latest" ]; then
-		cp public/index.html /var/www/docs
-	fi
-	rsync -v -a --delete public/$VER_DIR/. /var/www/docs/$VER_DIR
-fi
-