Fix API breakage caused by OS Plugin version scan
[releng/global-jjb.git] / shell / rtd-trigger-build.sh
index 21e7269..673d0f9 100644 (file)
@@ -8,16 +8,32 @@
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
 ##############################################################################
+# Call cURL to trigger a build in RTD via the Generic API
+#
+# Paramters:
+#     RTD_BUILD_URL: The unique build URL for the project.
+#                    Check Admin > Integrations > Generic API incoming webhook.
+#
+#     RTD_TOKEN: The unique token for the project Generic webhook.
+#                Check Admin > Integrations > Generic API incoming webhook.
+
 echo "---> rtd-trigger-build.sh"
 
 # Ensure we fail the job if any steps fail.
-# DO NOT set -u
-set -xe -o pipefail
+# DO NOT set -u as we depend on unbound variables being passed by Jenkins.
+set -e -o pipefail
+
+# Ensure RTD_BUILD_URL retains the trailing slash as it is needed for the API
+last_char=${RTD_BUILD_URL:length-1:1}
+[[ $last_char != "/" ]] && RTD_BUILD_URL="$RTD_BUILD_URL/"; :
+
+json=$(curl -X POST -d "branches=${GERRIT_BRANCH}" -d "token=$RTD_TOKEN" "$RTD_BUILD_URL")
+build_triggered=$(echo $json | jq -r .build_triggered)
 
-if [ "$GERRIT_BRANCH" == "master" ]; then
-    RTD_BUILD_VERSION=latest
-else
-    RTD_BUILD_VERSION="${GERRIT_BRANCH/\//-}"
+if [ "$build_triggered" != "true" ]; then
+    echo "ERROR: Build was not triggered."
+    echo "$json" | jq -r
+    exit 1
 fi
 
-curl -X POST --data "version_slug=$RTD_BUILD_VERSION" "https://readthedocs.org/build/$RTD_PROJECT"
+echo "Build triggered for $GERRIT_PROJECT in ReadTheDocs."