From 52e5797b3d80834033cf02ac06a0fd34017ddbfc Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Fri, 7 Dec 2018 14:19:46 +0100 Subject: [PATCH] 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 --- contrib/jenkins-build-manuals.sh | 40 +++++++++++++++++++++++++++ contrib/jenkins-make-check-and-run.sh | 1 + 2 files changed, 41 insertions(+) create mode 100755 contrib/jenkins-build-manuals.sh diff --git a/contrib/jenkins-build-manuals.sh b/contrib/jenkins-build-manuals.sh new file mode 100755 index 00000000..48f7780f --- /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 3017fd45..2a9bc825 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" \