-
Notifications
You must be signed in to change notification settings - Fork 2
/
.travis.sh
84 lines (64 loc) · 1.71 KB
/
.travis.sh
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
set -e # exit with nonzero exit code if anything fails
set -x
SRC_DIR=`pwd`
BUILD_DIR=build
CMAKE_C_FLAGS="-Wall -Wextra -Wabi -O2"
CMAKE_CXX_FLAGS="-Wall -Wextra -Wabi -O2"
function build ()
{
mkdir $BUILD_DIR && cd $BUILD_DIR
cmake $SRC_DIR
make
}
function test ()
{
mkdir $BUILD_DIR && cd $BUILD_DIR
cmake $SRC_DIR
make test
}
function build_docs ()
{
# Do not build docs twice, once for each compiler!!
if [ "$CC" == "clang" ]; then
return
fi
# clear and re-create the out directory
OUT_DIR=$SRC_DIR/docs/html
rm -rf $OUT_DIR || exit 0;
mkdir -p $OUT_DIR;
# ==== (1/2) Doxygen
cd $SRC_DIR/docs/
# Get MRPT doxygen tags, so MRPT classes link to their docs:
wget -q -O dox_mrpt.tag http://reference.mrpt.org/devel/dox_mrpt.tag
# Run doxygen
doxygen
# ==== (2/2) Build Latex docs:
cd $SRC_DIR/
mkdir build
cd build
cmake ..
cd $SRC_DIR/docs/srba-guide
make
cp srba-guide.pdf $OUT_DIR
# ==== Upload to gh-pages
cd $OUT_DIR
git init
# inside this git repo we'll pretend to be a new user
git config user.name "Travis CI"
git config user.email "[email protected]"
# The first and only commit to this new Git repo contains all the
# files present with the commit message "Deploy to GitHub Pages".
git add .
git commit -m "Deploy to GitHub Pages"
# Force push from the current repo's master branch to the remote
# repo's gh-pages branch. (All previous history on the gh-pages branch
# will be lost, since we are overwriting it.) We redirect any output to
# /dev/null to hide any sensitive credential data that might otherwise be exposed.
git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:gh-pages > /dev/null 2>&1
}
case $TASK in
build ) build;;
test ) test;;
docs ) build_docs;;
esac