build_doc.sh 2.4 KB
Newer Older
Y
Yu Yang 已提交
1
#!/bin/bash
Y
Yi Wang 已提交
2 3 4 5 6
set -e

# Create the build directory for CMake.
mkdir -p $TRAVIS_BUILD_DIR/build
cd $TRAVIS_BUILD_DIR/build
Y
Yu Yang 已提交
7

W
wuyi05 已提交
8
# Compile Documentation only.
9 10
cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_GPU=OFF -DWITH_MKL=OFF -DWITH_DOC=ON -DWITH_STYLE_CHECK=OFF
make -j `nproc` gen_proto_py framework_py_proto
L
Luo Tao 已提交
11
make -j `nproc` copy_paddle_pybind
L
Luo Tao 已提交
12
make -j `nproc` paddle_docs paddle_docs_cn paddle_api_docs
Y
Yu Yang 已提交
13

L
Luo Tao 已提交
14
# check websites for broken links
L
Luo Tao 已提交
15 16
linkchecker doc/v2/en/html/index.html
linkchecker doc/v2/cn/html/index.html
L
Luo Tao 已提交
17
linkchecker doc/api/en/html/index.html
L
Luo Tao 已提交
18

Y
Yu Yang 已提交
19 20 21 22 23 24
# Parse Github URL
REPO=`git config remote.origin.url`
SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:}
SHA=`git rev-parse --verify HEAD`

# Documentation branch name
W
wuyi05 已提交
25
# gh-pages branch is used for PaddlePaddle.org. The English version of
Y
Yu Yang 已提交
26 27 28 29 30 31 32 33
# documentation in `doc` directory, and the chinese version in `doc_cn`
# directory.
TARGET_BRANCH="gh-pages"

# Only deploy master branch to build latest documentation.
SOURCE_BRANCH="master"

# Clone the repo to output directory
L
Luo Tao 已提交
34
mkdir output
Y
Yu Yang 已提交
35 36 37
git clone $REPO output
cd output

Y
Yu Yang 已提交
38 39 40 41 42 43 44 45 46 47 48
function deploy_docs() {
  SOURCE_BRANCH=$1
  DIR=$2
  # If is not a Github pull request
  if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
    exit 0
  fi
  # If it is not watched branch.
  if [ "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then
    return
  fi
Y
Yu Yang 已提交
49

Y
Yu Yang 已提交
50 51
  # checkout github page branch
  git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH
W
wuyi05 已提交
52

Y
Yu Yang 已提交
53 54 55
  mkdir -p ${DIR}
  # remove old docs. mv new docs.
  set +e
L
Luo Tao 已提交
56
  rm -rf ${DIR}/doc ${DIR}/doc_cn ${DIR}/api_doc
Y
Yu Yang 已提交
57
  set -e
L
Luo Tao 已提交
58 59
  cp -r ../doc/v2/cn/html ${DIR}/doc_cn
  cp -r ../doc/v2/en/html ${DIR}/doc
L
Luo Tao 已提交
60
  cp -r ../doc/api/en/html ${DIR}/api_doc
Y
Yu Yang 已提交
61 62 63
  git add .
}

W
wuyi05 已提交
64
deploy_docs "master" "."
Y
Yu Yang 已提交
65
deploy_docs "develop" "./develop/"
Y
Yu Yang 已提交
66 67 68

# Check is there anything changed.
set +e
Y
Yu Yang 已提交
69
git diff --cached --exit-code >/dev/null
Y
Yu Yang 已提交
70 71 72 73 74 75
if [ $? -eq 0 ]; then
  echo "No changes to the output on this push; exiting."
  exit 0
fi
set -e

Y
Yu Yang 已提交
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
if [ -n $SSL_KEY ]; then  # Only push updated docs for github.com/PaddlePaddle/Paddle.
  # Commit
  git add .
  git config user.name "Travis CI"
  git config user.email "paddle-dev@baidu.com"
  git commit -m "Deploy to GitHub Pages: ${SHA}"
  # Set ssh private key
  openssl aes-256-cbc -K $SSL_KEY -iv $SSL_IV -in ../../paddle/scripts/travis/deploy_key.enc -out deploy_key -d
  chmod 600 deploy_key
  eval `ssh-agent -s`
  ssh-add deploy_key

  # Push
  git push $SSH_REPO $TARGET_BRANCH

fi