From 54e9c0b9e3c35d8f53179cb52ca0d62b3ae84703 Mon Sep 17 00:00:00 2001
From: nrbffs <38812627+nrbffs@users.noreply.github.com>
Date: Mon, 22 Apr 2019 11:05:07 -0400
Subject: [PATCH] CI: set GLUON_BRANCH depending on build type

Introduce the following build type:
| Build Type | When   |
|------------|--------|
| stable     | commit tag starts with "stable/" |
| beta       | commit tag starts with "beta/" |
| nightly    | trigger is a scheduled job |
| commit     | else |

Depending on the build type, set the GLUON_BRANCH accordingly:

| Build Type | GLUON_BRANCH  |
|------------|---------------|
| commit     | (unset)       |
| nightly    | nightly       |
| beta       | beta          |
| stable     | stable        |
---
 .gitlab-ci.yml      |  7 ++++---
 get-gluon-branch.sh | 30 ++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 3 deletions(-)
 create mode 100755 get-gluon-branch.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cfedbdd12..85025e5ee 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,7 +19,7 @@ stages:
   stage: build
   script:
     - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
-    - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=nightly V=1 -j`nproc`
+    - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=$(./get-gluon-branch.sh) V=1 -j`nproc`
   artifacts: 
     paths:
       - gluon/output/
@@ -132,8 +132,9 @@ target:x86-64:
 package:
   stage: package
   script:
-    - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
-    - make -C gluon manifest GLUON_BRANCH=nightly GLUON_SITEDIR="$CI_PROJECT_DIR" V=1
+    - GLUON_BRANCH=$(./get-gluon-branch.sh)
+    - test -z "$GLUON_BRANCH" || make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
+    - test -z "$GLUON_BRANCH" || make -C gluon manifest GLUON_BRANCH=$(./get-gluon-branch.sh) GLUON_SITEDIR="$CI_PROJECT_DIR" V=1
   artifacts:
     paths:
       - gluon/output
diff --git a/get-gluon-branch.sh b/get-gluon-branch.sh
new file mode 100755
index 000000000..35e25f116
--- /dev/null
+++ b/get-gluon-branch.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -eu
+set -o pipefail
+
+# autoupdater
+# ====
+#
+# For commit builds, the autoupdater shall be off, i.e. GLUON_BRANCH unset.
+# For nightly, GLUON_BRANCH must be nightly.
+# For beta, GLUON_BRANCH must be beta.
+# For stable, GLUON_BRANCH must be stable.
+
+gluon_branch=""
+
+if [[ "${CI_PIPELINE_SOURCE:-}" = "schedule" ]]; then
+    gluon_branch="nightly"
+fi
+
+case "${CI_COMMIT_TAG:-}" in
+beta/*)
+    gluon_branch="beta"
+;;
+stable/*)
+    gluon_branch="stable"
+;;
+esac
+
+# Else: Commit build
+echo $gluon_branch
-- 
GitLab