|
|
@@ -0,0 +1,38 @@
|
|
|
+#!/usr/bin/env bash
|
|
|
+
|
|
|
+set -eo pipefail
|
|
|
+
|
|
|
+prepare_docs_log() {
|
|
|
+ echo "[prepare docs release] -- $@"
|
|
|
+}
|
|
|
+
|
|
|
+# Only run for tagged commits
|
|
|
+if [ -z "$(git tag -l --points-at HEAD)" ]; then
|
|
|
+ prepare_docs_log "Skipping non-tagged commit."
|
|
|
+ exit 0
|
|
|
+fi
|
|
|
+
|
|
|
+DOCS_DIR="./docs"
|
|
|
+DIST_DIR="./dist/docs"
|
|
|
+BRANCHES_DIR="${DIST_DIR}/branches"
|
|
|
+API_SPEC_FILE="${DOCS_DIR}/openapi.yaml"
|
|
|
+
|
|
|
+redoc_bundle_file=$(mktemp)
|
|
|
+git_ref_version=$(git describe --always)
|
|
|
+branch_docs_dir="${BRANCHES_DIR}/${git_ref_version}"
|
|
|
+
|
|
|
+# Build Redoc bundle (a single HTML file)
|
|
|
+redoc-cli bundle ${API_SPEC_FILE} -o ${redoc_bundle_file}
|
|
|
+
|
|
|
+# Check out current stuff from gh-pages (we'll append to it)
|
|
|
+git checkout gh-pages -- docs
|
|
|
+
|
|
|
+# Create the docs bundle for our ref. This will be the redoc bundle + a
|
|
|
+# snapshot of the OpenAPI spec
|
|
|
+mkdir -p "${branch_docs_dir}"
|
|
|
+cp "${API_SPEC_FILE}" "${branch_docs_dir}"
|
|
|
+cp "${redoc_bundle_file}" "${branch_docs_dir}/index.html"
|
|
|
+
|
|
|
+# Create a JSON file containing a list of all branches with docs (we'll
|
|
|
+# have an index page that renders the list).
|
|
|
+ls "${BRANCHES_DIR}" | jq -R | jq -sc > "${DIST_DIR}/branches.json"
|