forked from BearWare/TeamTalk5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
139 lines (135 loc) · 4.4 KB
/
.travis.yml
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
language: cpp
dist: xenial
addons:
apt:
packages:
- libace-dev
- libace-ssl-dev
- libace-inet-dev
- libace-inet-ssl-dev
- libtinyxml-dev
- zlib1g-dev
- libssl-dev
- libopus-dev
- libspeex-dev
- libspeexdsp-dev
- libvpx-dev
- libogg-dev
- portaudio19-dev
- libasound2-dev
- libavcodec-dev
- libavdevice-dev
- libavfilter-dev
- libavformat-dev
- libavresample-dev
- libavutil-dev
- libswresample-dev
- libswscale-dev
- openjdk-8-jdk
- cmake
- qt5-default
- qtmultimedia5-dev
- libqt5x11extras5-dev
- libqt5webkit5-dev
# - qtwebengine5-dev (ubuntu 18)
- junit4
- catch
- python3-minimal
- doxygen
# Library/TeamTalkLib/toolchain has many submodules
git:
submodules: false
env:
global:
# TeamTalkJNI JUnit environment variables
- INPUTDEVICEID=1978
- OUTPUTDEVICEID=1978
- OPUSTOOLS=0
- VERBOSE=0
script:
# Source env (LD_LIBRARY_PATH, PYTHONPATH, etc)
- cd $TRAVIS_BUILD_DIR
- source env.sh
# Build libraries, server binaries and examples
- mkdir build
- cd build
- cmake -DBUILD_TEAMTALK_CORE=ON -DBUILD_TEAMTALK_STATIC=OFF -DBUILD_TEAMTALK_ACE=OFF -DSPEEXDSP_STATIC=OFF -DFFMPEG_STATIC=OFF -DAVF=OFF -DMSDMO=OFF -DDSHOW=OFF -DVIDCAP=OFF -DMEDIAFOUNDATION=OFF -DOPUS_STATIC=OFF -DLIBVPX_STATIC=OFF -DSPEEX_STATIC=OFF -DOGG_STATIC=OFF -DOPUSTOOLS=OFF -DLAMEMP3=OFF -DMSVS_UNITTEST=OFF -DACE_STATIC=OFF -DTINYXML_STATIC=OFF -DPORTAUDIO=OFF -DZLIB_STATIC=OFF -DCATCH_UNITTEST=ON ..
- make -j4 > /dev/null
# Run JUnit suite TeamTalkServerTestSuite.java
- cd $TRAVIS_BUILD_DIR
- cd Library/TeamTalkJNI
- make runjunitsrv
# Start TeamTalk Standard Server non-encrypted mode for JUnit and Catch
- cd $TRAVIS_BUILD_DIR
- cp Library/TeamTalkLib/test/tt5srv.xml_template Server/tt5srv.xml
- Server/tt5srv -d -c Server/tt5srv.xml
# Start TeamTalk Pro Server encrypted mode for Catch
- cp -f Library/TeamTalkLib/test/tt5prosrv.xml_template Server/tt5prosrv.xml
- cp Library/TeamTalkLib/test/ttservercert.pem Server/
- cp Library/TeamTalkLib/test/ttserverkey.pem Server/
- Server/tt5prosrv -d -wd Server/
# Run Catch unit-tests
- cd $TRAVIS_BUILD_DIR/Library/TeamTalkLib/test
- ./catchtt
# Kill TeamTalk Pro Server encrypted mode
- killall tt5prosrv
# Run JUnit suite TeamTalkStdTestSuite.java
- cd $TRAVIS_BUILD_DIR
- cd Library/TeamTalkJNI
- make runjunit
# Kill TeamTalk Standard Server non-encrypted mode
- killall tt5srv
# Start TeamTalk Pro Server non-encrypted mode for JUnit
# and use shared audio device
- cd $TRAVIS_BUILD_DIR
- cp -f Library/TeamTalkLib/test/tt5srv.xml_template Server/tt5srv.xml
- Server/tt5prosrv -d -c Server/tt5srv.xml
# Run JUnit suite TeamTalkProTestSuite.java
- cd $TRAVIS_BUILD_DIR
- cd Library/TeamTalkJNI
- export ENCRYPTED=0
- export INPUTDEVICEID=4026
- export OUTPUTDEVICEID=4026
- make runjunitpro
- killall tt5prosrv
# Start TeamTalk Pro Server in encrypted mode for JUnit
# and switch back to default sound device
- cd $TRAVIS_BUILD_DIR
- cp Library/TeamTalkLib/test/tt5prosrv.xml_template Server/tt5prosrv.xml
- cp Library/TeamTalkLib/test/ttservercert.pem Server/
- cp Library/TeamTalkLib/test/ttserverkey.pem Server/
- Server/tt5prosrv -d -wd Server/
# Start Python client example and ensure it connects
- cd $TRAVIS_BUILD_DIR
- make -C Client/ttserverlogpy
# Run JUnit suite TeamTalkProTestSuite.java
- cd Library/TeamTalkJNI
- export ENCRYPTED=1
- export INPUTDEVICEID=1978
- export OUTPUTDEVICEID=1978
- make runjunitpro
- killall tt5prosrv
# Run JUnit suite TeamTalkServerTestSuite.java in encrypted mode
- cd $TRAVIS_BUILD_DIR
- cd Library/TeamTalkJNI
- make runjunitsrv
# Run Catch unit tests (disabled, don't work with linked shared objects)
# - cd $TRAVIS_BUILD_DIR
# - Library/TeamTalkLib/test/catchtt
# Build Qt clients
# - cd $TRAVIS_BUILD_DIR
# - cd Client/qtTeamTalk
# - qmake CONFIG+=nowebengine teamtalk5.pro
# - make -j4
# - make clean
# - qmake CONFIG+=nowebengine teamtalk5pro.pro
# - make -j4
# Run doxygen
- cd $TRAVIS_BUILD_DIR/Documentation/TeamTalk
- doxygen TeamTalk5.dox
- cd $TRAVIS_BUILD_DIR/Documentation/TeamTalkSDK
- doxygen TeamTalk.dox
- cd $TRAVIS_BUILD_DIR/Documentation/TeamTalkSDK
- doxygen TeamTalk.NET.dox
- cd $TRAVIS_BUILD_DIR/Documentation/TeamTalkSDK
- doxygen TeamTalk.Java.dox