Fix publish docs URL output to console log.
[ci-management.git] / jjb / scripts / publish_docs.sh
1 #!/bin/bash
2
3 # Copyright (c) 2022 Cisco and/or its affiliates.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 echo "---> publish_docs.sh"
17
18 set -exuo pipefail
19
20 CDN_URL="s3-docs.fd.io"
21 bucket="fdio-docs-s3-cloudfront-index"
22
23 if [[ ${JOB_NAME} == *merge* ]]; then
24     case "${JOB_NAME}" in
25         *"csit-trending"*)
26             workspace_dir="${WORKSPACE}/resources/tools/presentation/_build"
27             bucket_path="/csit/${GERRIT_BRANCH}/trending/"
28             ;;
29         *"csit-report"*)
30             workspace_dir="${WORKSPACE}/resources/tools/presentation/_build"
31             bucket_path="/csit/${GERRIT_BRANCH}/report/"
32             ;;
33         *"csit-docs"*)
34             workspace_dir="${WORKSPACE}/resources/tools/doc_gen/_build"
35             bucket_path="/csit/${GERRIT_BRANCH}/docs/"
36             ;;
37         *"hicn-docs"*)
38             hicn_release="$(git describe --long --match "v*" | cut -d- -f1 | sed -e 's/^v//')"
39             workspace_dir="${WORKSPACE}/build/doc/deploy-site"
40             bucket_path="/hicn/${hicn_release}/"
41             ;;
42         *"vpp-docs"*)
43             vpp_release="$(${WORKSPACE}/build-root/scripts/version rpm-version)"
44             workspace_dir="${WORKSPACE}/build-root/docs/html"
45             bucket_path="/vpp/${vpp_release}/"
46             ;;
47         *)
48             die "Unknown job: ${JOB_NAME}"
49     esac
50 elif [[ ${JOB_NAME} == *verify* ]]; then
51     bucket="vpp-docs-7day-retention"
52     # Use the same bucket path as logs so that the docs can be viewed by
53     # s/s3-logs/s3-docs-7day/ in the URL after selecting the logs URL from
54     # the jenkins job page.
55     bucket_path="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER/"
56     case "${JOB_NAME}" in
57         *"hicn-docs"*)
58             workspace_dir="${WORKSPACE}/build/doc/deploy-site"
59             ;;
60         *"vpp-docs"*)
61             CDN_URL="s3-docs-7day.fd.io"
62             workspace_dir="${WORKSPACE}/build-root/docs/html"
63             ;;
64         *)
65             die "Unknown job: ${JOB_NAME}"
66     esac
67 else
68     die "Unknown job: ${JOB_NAME}"
69 fi
70
71 export TF_VAR_workspace_dir="$workspace_dir"
72 export TF_VAR_bucket_path="$bucket_path"
73 export TF_VAR_bucket="$bucket"
74 export AWS_SHARED_CREDENTIALS_FILE=$HOME/.aws/credentials
75 export AWS_DEFAULT_REGION="us-east-1"
76
77 echo "INFO: archiving docs to S3 bucket '$bucket'"
78 pushd ..
79 terraform init -no-color
80 terraform apply -no-color -auto-approve
81 popd
82
83 echo "S3 docs: <a href=\"https://${CDN_URL}/${bucket_path}\">https://${CDN_URL}/${bucket_path}</a>"