From 7318a166238372459902450eda6fe0255349bc14 Mon Sep 17 00:00:00 2001
From: Jason Kridner <jkridner@beagleboard.org>
Date: Thu, 29 Sep 2022 12:33:51 -0400
Subject: [PATCH] WIP: try to clean/automate -- out of time

---
 gitlab-build.sh | 136 ++++++++++++++++++++++++++++--------------------
 1 file changed, 80 insertions(+), 56 deletions(-)

diff --git a/gitlab-build.sh b/gitlab-build.sh
index c79002e9..b536bd3e 100755
--- a/gitlab-build.sh
+++ b/gitlab-build.sh
@@ -1,24 +1,81 @@
 #!/bin/bash
 
+apk add git
+apk add rsync
+apk add date
+
+export VER_LATEST_MAJOR=0
+export VER_LATEST_MINOR=1
+export VER_LATEST_EXTRA=rc
+export PATCHLEVEL=$(date +%Y%m%d)
+export VERSION_TWEAK=$(( $(date "+10#%H * 60 + 10#%M") ))
+export GIT_BRANCH=$(git branch -a --contains tags/$CI_COMMIT_TAG | grep origin | sed 's/.*origin\///')
+
+if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
+	export VER_DIR=latest
+	export PAGES_URL=$CI_PAGES_URL
+	export PAGES_SLUG=$CI_COMMIT_BRANCH
+	export GITLAB_USER=$CI_PROJECT_NAMESPACE
+	export GITLAB_HOST=$CI_SERVER_HOST
+	export PROJECT_BRANCH=$CI_COMMIT_BRANCH
+	export PROJECT_REPO=$CI_PROJECT_NAME
+	export VERSION_MAJOR=$VER_LATEST_MAJOR
+	export VERSION_MINOR=$VER_LATEST_MINOR
+	export EXTRAVERSION=$VER_LATEST_EXTRA
+elif [ "$CI_COMMIT_BRANCH" != "" ]; then
+	export VER_DIR=$CI_COMMIT_BRANCH
+	export PAGES_URL=$CI_PAGES_URL
+	export PAGES_SLUG=$CI_COMMIT_BRANCH
+	export GITLAB_USER=$CI_PROJECT_NAMESPACE
+	export GITLAB_HOST=$CI_SERVER_HOST
+	export PROJECT_BRANCH=$CI_COMMIT_BRANCH
+	export PROJECT_REPO=$CI_PROJECT_NAME
+	# TODO Figure out which MAJOR/MINOR/EXTRA we are on
+elif [ "$CI_COMMIT_TAG" != "" ]; then
+	if [ "$GIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
+		export VER_DIR=latest
+		export PAGES_URL=https://docs.beagleboard.org
+		export PAGES_SLUG=latest
+		export GITLAB_USER=docs
+		export GITLAB_HOST=$CI_SERVER_HOST
+		export PROJECT_BRANCH=$GIT_BRANCH
+		export PROJECT_REPO=docs.beagleboard.io
+		export VERSION_MAJOR=$VER_LATEST_MAJOR
+		export VERSION_MINOR=$VER_LATEST_MINOR
+	else
+		export VER_DIR=$GIT_BRANCH
+		export PAGES_URL=https://docs.beagleboard.org
+		export PAGES_SLUG=$GIT_BRANCH
+		export GITLAB_USER=docs
+		export GITLAB_HOST=$CI_SERVER_HOST
+		export PROJECT_BRANCH=$GIT_BRANCH
+		export PROJECT_REPO=docs.beagleboard.io
+		# TODO Figure out which MAJOR/MINOR we are on
+	fi
+else
+	echo "***** Not on a branch or tag *****"
+fi
+
 env
 
 cat << EOF > PAGES
-PAGES_URL =  $CI_PAGES_URL
-PAGES_SLUG = $CI_COMMIT_BRANCH
-GITLAB_USER = $CI_PROJECT_NAMESPACE
-PROJECT_BRANCH = $CI_COMMIT_BRANCH
-GITLAB_HOST = $CI_SERVER_HOST
-PROJECT_REPO = $CI_PROJECT_NAME
+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
 
-if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
+cat << EOF > VERSION
+VERSION_MAJOR = $VERSION_MAJOR
+VERSION_MINOR = $VERSION_MINOR
+PATCHLEVEL = $PATCHLEVEL
+VERSION_TWEAK = $VERSION_TWEAK
+EXTRAVERSION = $EXTRAVERSION
+EOF
 
-echo "**** Updating latest on docs.beagleboard.io ($CI_PROJECT_NAMESPACE) ****"
-rm -rf public
-sphinx-build -b html . public/latest/
-sphinx-build -M latexpdf . public/latest/
-mv public/latest/latex/beagleboard-docs.pdf public/latest/
-rm -rf public/latest/latex
+mkdir -p public
 cat <<HERE > public/index.html
 <!DOCTYPE html>
 <html>
@@ -31,50 +88,17 @@ cat <<HERE > public/index.html
 </html>
 HERE
 
-elif [ "$CI_COMMIT_BRANCH" != "" ]; then
-
-echo "**** Updating $CI_COMMIT_BRANCH on docs.beagleboard.io ($CI_PROJECT_NAMESPACE) ****"
-sphinx-build -b html . public/$CI_COMMIT_BRANCH/
-sphinx-build -M latexpdf . public/$CI_COMMIT_BRANCH/
-mv public/$CI_COMMIT_BRANCH/latex/beagleboard-docs.pdf public/$CI_COMMIT_BRANCH/
-rm -rf public/$CI_COMMIT_BRANCH/latex
+echo "**** Updating $PAGES_URL/$VER_DIR ****"
 
-elif [ "$CI_COMMIT_TAG" != "" ]; then
+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
 
-apk add git
-# Find which branch has the tag commit
-export GIT_BRANCH=$(git branch -a --contains tags/$CI_COMMIT_TAG | grep origin | sed 's/.*origin\///')
-echo "**** Releasing $GIT_BRANCH version $CI_COMMIT_TAG on docs.beagleboard.org (source from $CI_PROJECT_NAMESPACE) ****"
-cat << EOF > PAGES
-PAGES_URL =  $CI_PAGES_URL
-PAGES_SLUG = $GIT_BRANCH
-GITLAB_USER = $CI_PROJECT_NAMESPACE
-PROJECT_BRANCH = $GIT_BRANCH
-GITLAB_HOST = $CI_SERVER_HOST
-PROJECT_REPO = $CI_PROJECT_NAME
-EOF
-if [ "$GIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
-export GIT_BRANCH=latest
-rm -rf 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
-cp public/index.html /var/www/docs
+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
-sphinx-build -b html . public/$GIT_BRANCH/
-sphinx-build -M latexpdf . public/$GIT_BRANCH/
-cp public/$GIT_BRANCH/latex/beagleboard-docs.pdf public/$GIT_BRANCH/beagleboard-docs-$CI_COMMIT_TAG.pdf
-cp public/$GIT_BRANCH/latex/beagleboard-docs.pdf public/$GIT_BRANCH/beagleboard-docs.pdf
-rm -rf public/$GIT_BRANCH/latex
-apk add rsync
-rsync -v -a --delete public/$GIT_BRANCH/. /var/www/docs/$GIT_BRANCH
 
-fi
-- 
GitLab