/
run.sh
executable file
·162 lines (150 loc) · 4.6 KB
/
run.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#!/bin/bash
# this script runs the travis CI testbench. It's easier and more
# powerful this way than using .travis.yml (plus recommended by travis support)
#
set -v # we want to see the execution steps
set -e # abort on first failure
#set -x # debug aid
echo "DISTRIB_CODENAME: $DISTRIB_CODENAME"
echo "CLANG: $CLANG"
echo "****************************** BEGIN ACTUAL SCRIPT STEP ******************************"
source tests/travis/install.sh
source /etc/lsb-release
#
# ACTUAL MAIN CI PART OF THE SCRIPT
# This is to be executed for each PR
#
# we turn off leak sanitizer at this time because it reports some
# pretty irrelevant problems in startup code. In the longer term,
# we should clean these up, but we also have a lot of other leak
# tests, so this is not our priority at the moment (much more
# important things are on the TODO list).
export ASAN_OPTIONS=detect_leaks=0
if [ "$MERGE" == "YES" ]; then
# we need to use source as we must exit on inability to merge!
set +v
set +e
source tests/CI/try_merge.sh --merge-only
set -v
set -e
fi
set -e
if [ "$CC" == "clang" ] && [ "$DISTRIB_CODENAME" == "trusty" ]; then SCAN_BUILD="scan-build-5.0"; CC=clang-5.0; else SCAN_BUILD="scan-build"; fi
ls -l *.tar.gz
rm -f *.tar.gz # safety check: we must not have tarballs at this stage
if [ "x$BUILD_FROM_TARBALL" == "xYES" ]; then
autoreconf -fvi
./configure
make dist
ls -l *.tar.gz
mv *.tar.gz rsyslog.tar.gz
mkdir unpack
cd unpack
tar xzf ../rsyslog.tar.gz
ls -ld rsyslog*
cd rsyslog*
export JOURNAL_OPT=
export DEFAULT_CONFIG_FLAGS="--disable-fmhttp"
echo "============================== DONE unpacking =============================="
else
export DEFAULT_CONFIG_FLAGS="
--enable-imfile \
--enable-impstats \
--enable-mmrm1stspace \
--enable-imptcp \
--enable-mmanon \
--enable-mmaudit \
--enable-mmfields \
--enable-mmjsonparse \
--enable-mmpstrucdata \
--enable-mmsequence \
--enable-mmutf8fix \
--enable-mail \
--enable-omprog \
--enable-omruleset \
--enable-omuxsock \
--enable-pmaixforwardedfrom \
--enable-pmciscoios \
--enable-pmcisconames \
--enable-pmlastmsg \
--enable-pmsnare \
--enable-libgcrypt \
--enable-mmnormalize \
--enable-omudpspoof \
--enable-relp --enable-omrelp-default-port=13515 \
--enable-snmp \
--enable-mmsnmptrapd \
--enable-gnutls \
--enable-openssl \
--enable-gt-ksi \
--enable-libdbi \
--enable-omhttpfs \
--enable-elasticsearch \
--enable-omhttp \
--enable-ommongodb \
--enable-omtcl \
--enable-mmdblookup \
--enable-mmcount \
--enable-gssapi-krb5 \
--enable-omhiredis \
--enable-imczmq --enable-omczmq \
--enable-usertools \
--enable-pmnull \
--enable-pmnormalize \
"
fi
pwd
autoreconf --force --verbose --install
if [ "x$GROK" == "xYES" ]; then export GROK="--enable-mmgrok"; fi
if [ "x$ESTEST" == "xYES" ]; then export ES_TEST_CONFIGURE_OPT="--enable-elasticsearch-tests=minimal" ; fi
# at this point, the environment should be setup for ./configure
if [ "$CC" == "clang" ] && [ "$DISTRIB_CODENAME" == "trusty" ]; then export CC="clang-3.6"; fi
$CC -v
if [ "$DISTRIB_CODENAME" != "precise" ]; then AMQP1="--enable-omamqp1"; fi
export CONFIG_FLAGS="$CONFIGURE_FLAGS \
$EXTRA_CONFIGURE \
$JOURNAL_OPT \
$HIREDIS_OPT \
$ENABLE_KAFKA \
$ENABLE_DEBUGLESS \
$NO_VALGRIND \
$GROK \
$ES_TEST_CONFIGURE_OPT \
$AMQP1 \
$DEFAULT_CONFIG_FLAGS \
--disable-generate-man-pages \
--enable-valgrind \
--enable-testbench \
--enable-omstdout \
--enable-imdiag \
--enable-pgsql --enable-pgsql-tests \
--enable-mysql --enable-mysql-tests"
echo "============================== flags set =============================="
env | grep CONFIG
echo "============================== flags end =============================="
# Note: [io]mzmq3 cannot be built any longer, according to Brian Knox they require an
# outdated version of the client lib. So we do not bother any longer about them.
./configure $CONFIG_FLAGS
export USE_AUTO_DEBUG="off" # set to "on" to enable this for travis
make -j
if [ "x$CHECK" == "xYES" ]
then
set +e # begin testbench, here we do not want to abort
devtools/prep-mysql-db.sh # prepare mysql for testbench
make check
ALL_OK=$?
if [ -f tests/test-suite.log ]
then
cat tests/test-suite.log
fi
if [ $ALL_OK -ne 0 ]
then
echo "error in make check, error-terminating now"
exit $ALL_OK
fi
set -e # now errors are no longer permited, again
echo now running \"make distcheck\"
#make distcheck
fi
if [ "x$STAT_AN" == "xYES" ] ; then make clean; CFLAGS="-O2"; ./configure $CONFIG_FLAGS ; fi
if [ "x$STAT_AN" == "xYES" ] ; then $SCAN_BUILD --use-cc $CC --status-bugs make -j ; fi