From eb76823ce3ec609e03efcb5d7b871275ae8a1d59 Mon Sep 17 00:00:00 2001
From: Lennart Kramer <lennart.kramer@stud.uni-goettingen.de>
Date: Wed, 22 Jul 2020 17:58:30 +0200
Subject: [PATCH] restructure build

---
 .gitlab-ci.yml    |  5 +----
 build.sh          |  9 +++-----
 buildimage.sh     | 54 +++++++++++++++++++++++++++++------------------
 buildweb.sh       |  4 ++++
 goemaxima_version |  1 +
 versions          | 18 ++++++++--------
 6 files changed, 51 insertions(+), 40 deletions(-)
 create mode 100755 buildweb.sh
 create mode 100644 goemaxima_version

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 054cf58..747e768 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,10 +15,7 @@ steve_jobs:
   tags:
     - docker
   script:
-    - go get github.com/prometheus/client_golang/prometheus
-    - go get github.com/prometheus/client_golang/prometheus/promhttp
-    - cd src/web
-    - GOBIN=${CI_PROJECT_DIR}/bin go install
+    - ./buildweb.sh
   artifacts:
     paths:
     - bin/web
diff --git a/build.sh b/build.sh
index 91bf00f..363ab44 100755
--- a/build.sh
+++ b/build.sh
@@ -1,9 +1,6 @@
 REGISTRY=$1
-grep -v '^#' versions | \
-while read -r line; do
-	maxima_version="$(echo "$line" | cut -f1)"
-	sbcl_version="$(echo "$line" | cut -f2)"
-	stack_version="$(echo "$line" | cut -f3)"
+grep -v '^#' versions | cut -f1 | \
+while read -r ver; do
 	goemaxima_version="$2"
-	./buildimage.sh "${sbcl_version}" "${maxima_version}" "$stack_version" "stack/$stack_version/maxima" "${REGISTRY}" "$goemaxima_version" || exit 1
+	./buildimage.sh "$ver" "${REGISTRY}" "$goemaxima_version" || exit 1
 done
diff --git a/buildimage.sh b/buildimage.sh
index 6dc35cd..8531a52 100755
--- a/buildimage.sh
+++ b/buildimage.sh
@@ -1,26 +1,38 @@
-##/bin/bash
-# arg1: sbcl version
-# arg2: maxima version
-# arg3: stack or moodle version: "stack-XXX" or "moodlev.X"
-# arg4: LIB_PATH
-# arg5: REGISTRY or dockerhub id
-# arg6: version of goemaxima
-#
+#!/bin/bash
+# arg1: stack or moodle version: "stack-XXX" or "moodlev.X"
+# arg2: REGISTRY or dockerhub id
+
+stackver="$1"
+if [ -z "$stackver" ]; then
+	echo "Stack version is missing"
+	echo "Usage: $0 stackmaximaversion [registry] [containerversion]"
+fi
+verstring=$(awk '$1 == "'"$1"'"{ print $0 }' versions)
+sbclver="$(echo "$verstring" | cut -f2)"
+maximaver="$(echo "$verstring" | cut -f3)"
+goemaxver="$(cat goemaxima_version)"
+libpath="stack/$stackver/maxima"
 echo "starting to build image for:"
-echo "sbcl: $1"
-echo "maxima: $2"
-echo "stack: $3"
-IMAGENAME="goemaxima:$3"
-docker pull "$5/$IMAGENAME-dev"
+echo "sbcl: $maximaver"
+echo "maxima: $sbclver"
+echo "stackmaxima: $stackver"
+echo "goemaxima: $goemaxver"
+REG="$2"
+IMAGENAME="goemaxima:$1"
+if [ -n "$REG" ]; then
+	docker pull "$2/$IMAGENAME-dev"
+fi
 # build it
-docker build -t "${IMAGENAME}" --build-arg MAXIMA_VERSION="$2" --build-arg SBCL_VERSION="$1" --build-arg LIB_PATH="$4" . || exit 1
+docker build -t "${IMAGENAME}" --build-arg MAXIMA_VERSION="$maximaver" --build-arg SBCL_VERSION="$sbclver" --build-arg LIB_PATH="$libpath" . || exit 1
 echo "${IMAGENAME} wurde erfolgreich gebaut."
 # push the image
-docker tag "$IMAGENAME" "$5/$IMAGENAME-dev"
-docker push "$5/$IMAGENAME-dev"
-if [ -n "$6" ]; then
-	docker tag "$IMAGENAME" "$5/$IMAGENAME-$6"
-	docker push "$5/$IMAGENAME-$6"
-	docker tag "$IMAGENAME" "$5/$IMAGENAME-latest"
-	docker push "$5/$IMAGENAME-latest"
+if [ -n "$REG" ]; then
+	docker tag "$IMAGENAME" "$2/$IMAGENAME-dev"
+	docker push "$2/$IMAGENAME-dev"
+	if [ -n "$3" ]; then
+		docker tag "$IMAGENAME" "$2/$IMAGENAME-$3"
+		docker push "$2/$IMAGENAME-$3"
+		docker tag "$IMAGENAME" "$2/$IMAGENAME-latest"
+		docker push "$2/$IMAGENAME-latest"
+	fi
 fi
diff --git a/buildweb.sh b/buildweb.sh
new file mode 100755
index 0000000..466f84b
--- /dev/null
+++ b/buildweb.sh
@@ -0,0 +1,4 @@
+go get github.com/prometheus/client_golang/prometheus
+go get github.com/prometheus/client_golang/prometheus/promhttp
+GOBIN=$(realpath bin) go install ./src/web
+
diff --git a/goemaxima_version b/goemaxima_version
new file mode 100644
index 0000000..6d7de6e
--- /dev/null
+++ b/goemaxima_version
@@ -0,0 +1 @@
+1.0.2
diff --git a/versions b/versions
index b12e282..d045f08 100644
--- a/versions
+++ b/versions
@@ -1,10 +1,10 @@
 # maxima,sbcl,stack
-5.41.0	2.0.2	2014083000
-5.41.0	2.0.2	2017121800 
-5.41.0	2.0.2	2018030500 
-5.41.0	2.0.2	2018080600 
-5.41.0	2.0.2	2019090200 
-5.41.0	2.0.2	2020042000
-5.41.0	2.0.2	2020052700
-5.41.0	2.0.2	2020061000
-5.41.0	2.0.2	2020070100
+2014083000	5.41.0	2.0.2	
+2017121800	5.41.0	2.0.2	
+2018030500	5.41.0	2.0.2	
+2018080600	5.41.0	2.0.2	
+2019090200	5.41.0	2.0.2	
+2020042000	5.41.0	2.0.2	
+2020052700	5.41.0	2.0.2	
+2020061000	5.41.0	2.0.2	
+2020070100	5.41.0	2.0.2	
-- 
GitLab