jjb: Check internal site links on lttng.org before deploy
authorKienan Stewart <kstewart@efficios.com>
Fri, 7 Jul 2023 14:26:50 +0000 (10:26 -0400)
committerKienan Stewart <kstewart@efficios.com>
Fri, 7 Jul 2023 14:33:58 +0000 (10:33 -0400)
Change-Id: I4811b7dc6b9cd988a50e1ce23eb7d7519dc20804

scripts/lttng-www/deploy.sh

index f66c53f69b4f07640cf722124dbaa9d43e82f089..ac35fb515955ca662fc85202f4feb6716f501c0a 100755 (executable)
@@ -32,7 +32,6 @@ apt-get install -y ruby ruby-bundler ruby-dev
 ruby -v
 
 apt-get install -y asciidoc xmlto python3 python3-pip doclifter
-
 npm install -g grunt-cli
 npm install -g sass
 
@@ -41,6 +40,26 @@ bundle config set --local path "vendor/bundle"
 ./bootstrap.sh
 
 bundle exec grunt build:prod --network
+
+apt-get install -y linkchecker
+bundle exec 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
+
 bundle exec grunt deploy:prod --network
 
 # EOF
This page took 0.028328 seconds and 4 git commands to generate.