summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2018-12-07 14:19:46 +0100
committerOliver Smith <osmith@sysmocom.de>2018-12-10 12:57:04 +0100
commit52e5797b3d80834033cf02ac06a0fd34017ddbfc (patch)
tree6133ad8d9ed445cd0e5ea236fbae0a3a08666e15
parentffe1b08c46c36f0f980bfee935fa3eaaedf76141 (diff)
contrib/jenkins*: build and publish manuals
Add contrib/jenkins-build-manuals.sh, which clones or updates osmo-gsm-manuals and builds the manuals. When the environment variable PUBLISH=1 is set, it also uploads them. Call jenkins-build-manuals.sh from jenkins-run.sh, without PUBLISH=1, so the manuals get build-tested in the osmo-gsm-tester_gerrit job. A new job master-osmo-gsm-tester will be added in the future, which will run PUBLISH=1 jenkins-build-manuals.sh. The jenkins-build-manuals.sh script does not use the osmo-ci.git scripts for installing dependencies and cleaning up the workspace. These scripts are not available on the node, which runs the osmo-gsm-tester_gerrit job, and it is not trivial to add just them (without building the osmo-ci Docker image etc.). The only dependency is osmo-gsm-manuals, and it does not need to be compiled, so it seemed to be the most maintainable solution to implement the clone/update and clean up in a few lines of shell code instead. Related: OS#3385 Change-Id: I4ebfe12a164f807b63bc897aff44db83fc0705bd
-rwxr-xr-xcontrib/jenkins-build-manuals.sh40
-rwxr-xr-xcontrib/jenkins-make-check-and-run.sh1
2 files changed, 41 insertions, 0 deletions
diff --git a/contrib/jenkins-build-manuals.sh b/contrib/jenkins-build-manuals.sh
new file mode 100755
index 0000000..48f7780
--- /dev/null
+++ b/contrib/jenkins-build-manuals.sh
@@ -0,0 +1,40 @@
+#!/bin/sh -ex
+# environment variables:
+# * PUBLISH: upload manuals after building if set to "1"
+
+base="$PWD"
+export OSMO_GSM_MANUALS_DIR="$base/osmo-gsm-manuals"
+
+# Sanity check
+if ! [ -d "$base/doc/manuals" ]; then
+ echo "ERROR: this script needs to be executed from the top dir of osmo-gsm-tester.git."
+ exit 1
+fi
+
+# Clone/update osmo-gsm-manuals and wipe local modifications
+if [ -d "$OSMO_GSM_MANUALS_DIR" ]; then
+ git -C "$OSMO_GSM_MANUALS_DIR" pull
+else
+ git clone "https://git.osmocom.org/osmo-gsm-manuals" "$OSMO_GSM_MANUALS_DIR"
+fi
+git -C "$OSMO_GSM_MANUALS_DIR" checkout -f HEAD
+
+# Copy manuals source to empty temp dir (so we can easily clean up afterwards)
+temp="$base/_manuals_temp"
+if [ -d "$temp" ]; then
+ rm -rf "$temp"
+fi
+cp -r "$base/doc/manuals" "$temp"
+
+# Build the manuals
+cd "$temp"
+make
+make check
+
+# Publish
+if [ "$PUBLISH" = "1" ]; then
+ make publish
+fi
+
+# Clean up
+rm -r "$temp"
diff --git a/contrib/jenkins-make-check-and-run.sh b/contrib/jenkins-make-check-and-run.sh
index 3017fd4..2a9bc82 100755
--- a/contrib/jenkins-make-check-and-run.sh
+++ b/contrib/jenkins-make-check-and-run.sh
@@ -8,6 +8,7 @@ test -x "$run_script"
cd osmo-gsm-tester
make deps
make check
+./contrib/jenkins-build-manuals.sh
cd "$base"
PATH="$base/osmo-gsm-tester/src:$PATH" \