File: deploy_docs_travis.bash

package info (click to toggle)
cclib-data 1.6.2-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, sid
  • size: 87,912 kB
  • sloc: python: 16,440; sh: 131; makefile: 79; cpp: 31
file content (66 lines) | stat: -rw-r--r-- 2,094 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env bash

# deploy_docs_travis.bash: Deploy the documentation to the website using
# Travis. Assume that the documentation has already been built.

# Adapted from https://gist.github.com/vidavidorra/548ffbcdae99d752da02

set -o errexit

# Required environment variables:
# - DOCS_BRANCH_NAME: name of the remote branch serving the book
# - DOCS_BUILD_DIR: directory where documentation HTML files live
# - DOCS_REPO_NAME: name of the remote repo
# - DOCS_REPO_OWNER: name of the remote repo's owner
# - GH_TOKEN: [secret] Personal Access Token

bold=$(tput bold)
normal=$(tput sgr0)

if [ -z ${DOCS_BRANCH_NAME+x} ]; then
    echo "${bold}\$DOCS_BRANCH_NAME is not set!${normal}"
    exit 1
elif [ -z ${DOCS_BUILD_DIR+x} ]; then
    echo "${bold}\$DOCS_BUILD_DIR is not set!${normal}"
    exit 1
elif [ -z ${DOCS_REPO_NAME+x} ]; then
    echo "${bold}\$DOCS_REPO_NAME is not set!${normal}"
    exit 1
elif [ -z ${DOCS_REPO_OWNER+x} ]; then
    echo "${bold}\$DOCS_REPO_OWNER is not set!${normal}"
    exit 1
elif [ -z ${GH_TOKEN+x} ]; then
    echo "${bold}\$GH_TOKEN is not set!${normal}"
    exit 1
fi

git config user.name "Travis CI User"
git config user.email "travis@travis-ci.org"

GH_REPO_REF="github.com/${DOCS_REPO_OWNER}/${DOCS_REPO_NAME}.git"

git clone -b "${DOCS_BRANCH_NAME}" https://git@"${GH_REPO_REF}"
pushd ./"${DOCS_REPO_NAME}"
rm -rf ./*
echo "Copying built HTML..."
cp -a "${DOCS_BUILD_DIR}"/* .

if [ -f "index.html" ]; then
    echo "" > .nojekyll
    echo "${bold}Adding changes...${normal}"
    git add --all
    echo "${bold}Committing...${normal}"
    # This will return 1 if there are no changes, which should not result in
    # failure.
    git commit \
        -m "Deploy code docs to GitHub Pages Travis build: ${TRAVIS_BUILD_NUMBER}" \
        -m "Commit: ${TRAVIS_COMMIT}" || ret=$?
    git push "https://${GH_TOKEN}@${GH_REPO_REF}"
else
    echo "" >&2
    echo "${bold}Warning: No documentation (html) files have been found!${normal}" >&2
    echo "${bold}Warning: Not going to push the documentation to GitHub!${normal}" >&2
    exit 1
fi

popd