jjb: Correct unbound variable usage error
[lttng-ci.git] / scripts / lttng-www / deploy.sh
1 #!/bin/bash
2 # shellcheck disable=SC2103
3 #
4 # Copyright (C) 2021 Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19 set -exu
20
21 # Add ssh key for deployment
22 cp "$HOST_PUBLIC_KEYS" ~/.ssh/known_hosts
23 cp "$KEY_FILE_VARIABLE" ~/.ssh/id_rsa
24
25 # lttng-www dependencies
26 export DPKG_FRONTEND=noninteractive
27 # Nodejs
28 # Using Debian, as root
29 apt-get update
30 apt-get install -y nodejs npm
31 apt-get install -y ruby ruby-bundler ruby-dev
32 ruby -v
33
34 apt-get install -y asciidoc xmlto python3 python3-pip doclifter
35 npm install -g grunt-cli
36 npm install -g sass
37
38 bundle config set --local path "vendor/bundle"
39
40 ./bootstrap.sh
41
42 bundle exec grunt build:prod --network
43
44 apt-get install -y linkchecker
45 bundle exec grunt connect:prod watch:prod &
46 SERVER_PID="${!}"
47 sleep 10 # While serve:prod starts up
48 OUTPUT_FILE="$(mktemp -d)/linkchecker-out.csv"
49 chown nobody "$(dirname "${OUTPUT_FILE}")"
50 # @Note: Only internal links are checked by default
51 if ! linkchecker -q -F "csv/utf-8/${OUTPUT_FILE}" http://localhost:10000/ ; then
52 echo "Linkchecker failed or found broken links"
53 cat "${OUTPUT_FILE}"
54 kill "${SERVER_PID}"
55 rm -rf "${OUTPUT_FILE}/.."
56 sleep 5 # Let serve:prod stop
57 exit 1
58 else
59 rm -rf "${OUTPUT_FILE}/.."
60 kill "${SERVER_PID}"
61 fi
62
63 bundle exec grunt deploy:prod --network
64
65 # EOF
This page took 0.063631 seconds and 4 git commands to generate.