-
Notifications
You must be signed in to change notification settings - Fork 170
178 lines (146 loc) · 5.83 KB
/
ubuntu22.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
name: Ubuntu 22
on: [push]
env:
# TeamTalk unit test environment variables
INPUTDEVICEID: 1978
OUTPUTDEVICEID: 1978
VIDEODEVICEID: None
VERBOSE: 0
GITHUBSKIP: 1
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- name: Refresh Ubuntu-repo
run: sudo apt update
- name: Update packages
working-directory: ${{runner.workspace}}/TeamTalk5
# Ensure FFmpeg doesn't detect additional dependencies
run: |
sudo apt remove libmagickcore-dev libmagickwand-dev libbz2-dev liblzma-dev
sudo apt autoremove
sudo apt install valgrind
sudo make -C Build depend-ubuntu22
dpkg -l
- name: Print env
run: printenv | sort
- name: Init TeamTalk Library submodules
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
git submodule update --init Library/TeamTalkLib/test/testdata
- name: Install TeamTalk Library Dependencies
working-directory: ${{runner.workspace}}/TeamTalk5
run: sudo make -C Build depend-ubuntu22
- name: Build TeamTalk Library and Apps
working-directory: ${{runner.workspace}}/TeamTalk5
shell: bash
run: |
source env.sh
make CMAKE_EXTRA="-DFEATURE_WEBRTC=OFF -DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON -DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2_PERF=OFF -DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install" -C Build ubuntu22
echo TEAMTALK_INSTALLDIR=${{runner.workspace}}/install>> $GITHUB_ENV
- name: Java Server API Test (non-encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkJNI
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
export ENCRYPTED=0 WEBRTC=0
make runjunitsrv
- name: Java Server API Test (encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkJNI
run: |
export ENCRYPTED=1 WEBRTC=0
make runjunitsrv
- name: Start TeamTalk Standard Server
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
cp Library/TeamTalkLib/test/tt5srv.xml_template Server/tt5srv.xml
Server/tt5srv -d -c Server/tt5srv.xml
- name: Start TeamTalk Pro Server (encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
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/
cp Library/TeamTalkLib/test/ca.cer Server/
Server/tt5prosrv -d -wd Server/
- name: Run PyTest
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
source env.sh
pytest-3 Library/TeamTalkPy/test/teamtalk_test.py
- name: Run Python client
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
source env.sh
make -C Client/ttserverlogpy
- name: Catch unit-test
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkLib/test
run: valgrind --tool=memcheck --leak-check=full --error-exitcode=1 ./catchtt --durations yes
- name: Stop TeamTalk Pro Server
run: killall tt5prosrv
- name: Java Unit-test (non-encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkJNI
run: |
export ENCRYPTED=0 WEBRTC=0
make runjunit
- name: Stop TeamTalk Standard Server
run: killall tt5srv
- name: Start TeamTalk Pro Server (non-encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
cp -f Library/TeamTalkLib/test/tt5srv.xml_template Server/tt5srv.xml
Server/tt5prosrv -d -c Server/tt5srv.xml
- name: Java Unit-test with shared audio devices (non-encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkJNI
run: |
export ENCRYPTED=0 WEBRTC=0
export INPUTDEVICEID=4026
export OUTPUTDEVICEID=4026
make runjunitpro
- name: Stop TeamTalk Pro Server (non-encrypted)
run: killall tt5prosrv
- name: Start TeamTalk Pro Server (encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
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/
- name: Java Unit-test with virtual audio device (encrypted)
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkJNI
run: |
export ENCRYPTED=1 WEBRTC=0
export INPUTDEVICEID=1978
export OUTPUTDEVICEID=1978
make runjunitpro
- name: Stop TeamTalk Pro Server (encrypted)
run: killall tt5prosrv
- name: Run CMake Install Target
working-directory: ${{runner.workspace}}/TeamTalk5/Build/build-ubuntu22
run: cmake --build . --target install
- name: Upload TeamTalk Artifacts
uses: actions/upload-artifact@v4
with:
name: teamtalksdk-ubuntu22
path: ${{runner.workspace}}/install
- name: Make Ubuntu 22 Portable Archive
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
source env.sh
cd Setup/Portable
make ubuntu22 ubuntu22pro
- name: Upload TeamTalk Portable artifact
uses: actions/upload-artifact@v4
with:
name: teamtalk-ubuntu22
path: ${{runner.workspace}}/TeamTalk5/Setup/Portable/teamtalk-*
- name: Upload TeamTalk Pro artifact
uses: actions/upload-artifact@v4
with:
name: teamtalkpro-ubuntu22
path: ${{runner.workspace}}/TeamTalk5/Setup/Portable/teamtalkpro-*