1+ #! /bin/bash
2+ # ----------------------------------------------------------
3+ # Automatically push back the generated JavaDocs to gh-pages
4+ # ----------------------------------------------------------
5+ # based on https://gist.github.com/willprice/e07efd73fb7f13f917ea
6+
7+ # specify the common address for the repository
8+ targetRepo=github.com/ReactiveX/RxJava.git
9+ # =======================================================================
10+
11+ # only for main pushes, for now
12+ if [ " $TRAVIS_PULL_REQUEST " != " false" ]; then
13+ echo -e " Pull request detected, skipping JavaDocs pushback."
14+ exit 0
15+ fi
16+
17+ # get the current build tag if any
18+ buildTag=" $TRAVIS_TAG "
19+ echo -e " Travis tag: '$buildTag '"
20+
21+ if [ " $buildTag " == " " ]; then
22+ buildTag=" snapshot"
23+ else
24+ buildTag=" ${buildTag: 1} "
25+ fi
26+
27+ echo -e " JavaDocs pushback for tag: $buildTag "
28+
29+ # check if the token is actually there
30+ if [ " $GITHUB_TOKEN " == " " ]; then
31+ echo -e " No access to GitHub, skipping JavaDocs pushback."
32+ exit 0
33+ fi
34+
35+ # prepare the git information
36+ git config --global user.email
" [email protected] " 37+ git config --global user.name " Travis CI"
38+
39+ # setup the remote
40+ echo -e " Adding the target repository to git"
41+ git remote add origin-pages https://${GITHUB_TOKEN} @${targetRepo} > /dev/null 2>&1
42+
43+ # stash changes due to chmod
44+ echo -e " Stashing any local non-ignored changes"
45+ git stash
46+
47+ # get the gh-pages
48+ echo -e " Update branches and checking out gh-pages"
49+ git fetch --all
50+ git branch -a
51+ git checkout -b gh-pages origin-pages/gh-pages
52+
53+ # releases should update 2 extra locations
54+ if [ " $buildTag " != " snapshot" ]; then
55+ # for releases, add a new directory with the new version
56+ # and carefully replace the others
57+
58+ # 1.) main javadoc
59+ # ----------------
60+ # remove the io subdir
61+ echo -e " Removing javadoc/io"
62+ rm -r javadoc/io
63+
64+ # remove the html files
65+ echo -e " Removing javadoc/*.html"
66+ rm javadoc/* .html
67+
68+ # copy the new doc
69+ echo -e " Copying to javadoc/"
70+ yes | cp -rf ./build/docs/javadoc/ .
71+
72+ # 2.) 2.x javadoc
73+ # remove the io subdir
74+ echo -e " Removing 2.x/javadoc/io"
75+ rm -r 2.x/javadoc/io
76+
77+ # remove the html files
78+ echo -e " Removing 2.x/javadoc/*.html"
79+ rm 2.x/javadoc/* .html
80+
81+ # copy the new doc
82+ echo -e " Copying to 2.x/javadoc/"
83+ yes | cp -rf ./build/docs/javadoc/ 2.x/
84+ fi
85+
86+ # 3.) create a version/snapshot specific copy of the docs
87+ # clear the existing tag
88+ echo -e " Removing to 2.x/javadoc/${buildTag} "
89+ rm -r 2.x/javadoc/${buildTag}
90+
91+ # copy the new doc
92+ echo -e " Copying to 2.x/javadoc/${buildTag} "
93+ yes | cp -rf ./build/docs/javadoc/ 2.x/javadoc/${buildTag} /
94+
95+
96+ # stage all changed and new files
97+ echo -e " Staging new files"
98+ git add * .html
99+ git add * .css
100+ git add * .js
101+ git add * package-list*
102+
103+ # remove tracked but deleted files
104+ echo -e " Removing deleted files"
105+ git add -u
106+
107+ # commit all
108+ echo -e " commit Travis build: $TRAVIS_BUILD_NUMBER for $buildTag "
109+ git commit --message " Travis build: $TRAVIS_BUILD_NUMBER for $buildTag "
110+
111+ # debug file list
112+ # find -name "*.html"
113+
114+ # push it
115+ echo -e " Pushing back changes."
116+ git push --quiet --set-upstream origin-pages gh-pages
117+
118+
119+ # we are done
120+ echo -e " JavaDocs pushback complete."
0 commit comments