From 69114bc9ebc8c4eab9ac3384d4fae942d159f561 Mon Sep 17 00:00:00 2001 From: Kienan Stewart Date: Fri, 7 Jul 2023 10:27:27 -0400 Subject: [PATCH] jjb: Check internal links on babeltrace.org before deploy Change-Id: Icf09e3e9d7cedde87dffa0ff264b98295a7a337b --- scripts/babeltrace-www/deploy.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/scripts/babeltrace-www/deploy.sh b/scripts/babeltrace-www/deploy.sh index 617e4ed..a798159 100644 --- a/scripts/babeltrace-www/deploy.sh +++ b/scripts/babeltrace-www/deploy.sh @@ -27,6 +27,7 @@ cp "$KEY_FILE_VARIABLE" ~/.ssh/id_rsa # Nodejs # Using Debian, as root apt-add-repository ppa:brightbox/ruby-ng +apt-get update apt-get install -y ruby${RUBY_VERSION} ruby${RUBY_VERSION}-dev ruby-switch ruby-bundler ruby-switch --list @@ -52,6 +53,26 @@ pip install -r requirements.txt # As we've already opened a venv, set SKIP_VENV so the python job doesn't # create a second nested virtual environment. TERM=dumb SKIP_VENV=1 grunt build:prod --verbose + +apt-get install -y linkchecker +grunt connect:prod watch:prod & +SERVER_PID="${!}" +sleep 10 # While serve:prod starts up +OUTPUT_FILE="$(mktemp -d)/linkchecker-out.csv" +chown nobody "$(dirname "${OUTPUT_FILE}")" +# @Note: Only internal links are checked by default +if ! linkchecker -q -F "csv/utf-8/${OUTPUT_FILE}" http://localhost:10000/ ; then + echo "Linkchecker failed or found broken links" + cat "${OUTPUT_FILE}" + kill "${SERVER_PID}" + rm -rf "${OUTPUT_FILE}/.." + sleep 5 # Let serve:prod stop + exit 1 +else + rm -rf "${OUTPUT_FILE}/.." + kill "${SERVER_PID}" +fi + grunt deploy:prod --verbose # In the venv functions generated by the version of python installed on bionic -- 2.34.1