Skip to content

Ability to filter servers by country in qt teamtalk, Same as filtering servers by name! #6228

Ability to filter servers by country in qt teamtalk, Same as filtering servers by name!

Ability to filter servers by country in qt teamtalk, Same as filtering servers by name! #6228

Workflow file for this run

name: Windows
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
# TeamTalk unit test environment variables
INPUTDEVICEID: 1978
OUTPUTDEVICEID: 1978
VIDEODEVICEID: None
VERBOSE: 0
GITHUBSKIP: 1
SKIPKNOWNBUGS: 1
jobs:
build:
if: "!startsWith(github.head_ref, 'debug') || startsWith(github.head_ref, 'debug-windows')"
permissions:
security-events: write
packages: read
strategy:
fail-fast: false
matrix:
arch: [x86, x64]
include:
- arch: x86
cmakeplatform: Win32
javaversion: 11
portablearch: win32
qtarch: win32_msvc2019
qtversion: '5.15.*'
vcvars: vcvars32.bat
- arch: x64
cmakeplatform: x64
javaversion: 25
portablearch: win64
qtarch: win64_msvc2022_64
qtmodules: 'qtmultimedia qtspeech'
qtversion: '6.11.1'
vcvars: vcvars64.bat
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
submodules: true
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '${{ matrix.javaversion }}'
architecture: ${{ matrix.arch }}
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.14'
architecture: ${{ matrix.arch }}
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
arch: '${{ matrix.qtarch }}'
version: '${{ matrix.qtversion }}'
modules: '${{ matrix.qtmodules }}'
setup-python: false
aqtsource: 'aqtinstall@git+https://github.com/miurahr/aqtinstall.git@master'
- name: Install Doxygen
uses: ssciwr/doxygen-install@v2
with:
version: '1.17.0'
- name: Set up VSTest
uses: darenm/Setup-VSTest@v1
- name: Install dependencies
run: python -m pip install -U pip pytest pytest-cov
- name: Print env
shell: cmd
run: set
- name: Install MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MSYS
path-type: inherit
update: true
install: base-devel
release: false
- name: Install NASM
working-directory: ${{runner.workspace}}
shell: cmd
run: |
curl -L -o nasm.zip https://www.nasm.us/pub/nasm/releasebuilds/3.01/win64/nasm-3.01-win64.zip
7z x nasm.zip
echo %CD%\nasm-3.01>> %GITHUB_PATH%
- name: Initialize CodeQL
if: matrix.arch == 'x64'
uses: github/codeql-action/init@v4
with:
languages: csharp
build-mode: manual
- name: Configure CMake for toolchain build
working-directory: ${{runner.workspace}}
run: >-
cmake -S TeamTalk5 -B output -A ${{ matrix.cmakeplatform }}
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2_PERF=OFF
-DFEATURE_WEBRTC=OFF
-DTOOLCHAIN_INSTALL_PREFIX=${{runner.workspace}}/install-toolchain
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install-teamtalk
- name: Build and install TeamTalk
working-directory: ${{runner.workspace}}
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\${{ matrix.vcvars }}"
cmake --build output --parallel --config Release --target install
echo ${{github.workspace}}\Library\TeamTalk_DLL>> %GITHUB_PATH%
echo ${{github.workspace}}\Library\TeamTalkJNI\libs>> %GITHUB_PATH%
echo PYTHONPATH=${{github.workspace}}\Library\TeamTalkPy>> %GITHUB_ENV%
- name: Run Java Server API tests (non-encrypted)
if: matrix.arch == 'x86'
working-directory: ${{github.workspace}}/Library/TeamTalkJNI
shell: cmd
run: junit.bat TeamTalkServerTestSuite
env:
ENCRYPTED: 0
WEBRTC: 0
- name: Run Java Server API tests (encrypted)
if: matrix.arch == 'x64'
working-directory: ${{github.workspace}}/Library/TeamTalkJNI
shell: cmd
run: junit.bat TeamTalkServerTestSuite
env:
ENCRYPTED: 1
WEBRTC: 0
- name: Copy server configuration
working-directory: ${{github.workspace}}
run: |
copy Library\TeamTalkLib\test\tt5srv.xml_template Server\tt5srv.xml
copy Library\TeamTalkLib\test\tt5prosrv.xml_template Server\tt5prosrv.xml
copy Library\TeamTalkLib\test\ttserverkey.pem Server\
copy Library\TeamTalkLib\test\ttservercert.pem Server\
copy Library\TeamTalkLib\test\ca.cer Server\
- name: Start TeamTalk Standard Server
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5svc.exe -i
tt5svc.exe -s
- name: Start TeamTalk Pro Server
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5prosvc.exe -i
tt5prosvc.exe -s
- name: Run Catch unit tests
working-directory: ${{github.workspace}}/Library/TeamTalkLib/test
shell: cmd
run: catchtt.exe --durations yes
- name: Run Java unit tests (non-encrypted)
working-directory: ${{github.workspace}}/Library/TeamTalkJNI
shell: cmd
run: junit.bat TeamTalkStdTestSuite
env:
ENCRYPTED: 0
WEBRTC: 0
- name: Run Java unit tests with shared audio devices (non-encrypted)
if: matrix.arch == 'x64'
working-directory: ${{github.workspace}}/Library/TeamTalkJNI
shell: cmd
run: junit.bat TeamTalkProTestSuite
env:
ENCRYPTED: 0
WEBRTC: 0
INPUTDEVICEID: 4026
OUTPUTDEVICEID: 4026
- name: Run Java unit tests with virtual audio device (encrypted)
if: matrix.arch == 'x86'
working-directory: ${{github.workspace}}/Library/TeamTalkJNI
shell: cmd
run: junit.bat TeamTalkProTestSuite
env:
ENCRYPTED: 1
WEBRTC: 0
- name: Restart TeamTalk Standard Server
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5svc.exe -e
tt5svc.exe -s
- name: Stop and uninstall TeamTalk Pro Server
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5prosvc.exe -e
tt5prosvc.exe -u
- name: Run .NET unit tests (non-encrypted)
working-directory: ${{runner.workspace}}
shell: cmd
run: |
cd output\Library\TeamTalk.NET\TeamTalkTest.NET\Release
xcopy /S /Y /E ${{github.workspace}}\Library\TeamTalkLib\test\testdata testdata\
VSTest.Console.exe /Platform:${{ matrix.arch }} TeamTalk5Test.NET.dll
- name: Run PyTest
working-directory: ${{github.workspace}}/Library/TeamTalkPy/test
run: pytest teamtalk_test.py
- name: Run Python client
working-directory: ${{github.workspace}}/Client/ttserverlogpy
run: python main.py
- name: Stop and uninstall TeamTalk Standard Server
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5svc.exe -e
tt5svc.exe -u
- name: Enable encryption
shell: cmd
run: echo ENCRYPTED=true>> %GITHUB_ENV%
- name: Start TeamTalk Pro Server (encrypted)
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5prosvc.exe -i
tt5prosvc.exe -s
- name: Run .NET unit tests (encrypted)
working-directory: ${{runner.workspace}}
shell: cmd
run: |
cd output\Library\TeamTalk.NET\TeamTalkTest.NET\Release
xcopy /S /Y /E ${{github.workspace}}\Library\TeamTalkLib\test\testdata testdata\
VSTest.Console.exe /Platform:${{ matrix.arch }} TeamTalk5Test.NET.dll
- name: Stop and uninstall TeamTalk Pro Server
working-directory: ${{github.workspace}}/Server
shell: cmd
run: |
tt5prosvc.exe -e
tt5prosvc.exe -u
- name: Compile TeamTalk5.chm
continue-on-error: true
working-directory: ${{github.workspace}}/Documentation/TeamTalk
shell: cmd
run: '"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" output\index.hhp'
- name: Create portable archives
working-directory: ${{runner.workspace}}
shell: msys2 {0}
run: |
cd install-teamtalk
export TEAMTALK_INSTALLDIR=$PWD
cd ../TeamTalk5
source env.sh
cd Setup/Portable
make ${{ matrix.portablearch }} ${{ matrix.portablearch }}pro
- name: Compile Inno Setup installer
if: matrix.arch == 'x64'
working-directory: ${{github.workspace}}/Setup/Installer/Windows
shell: cmd
run: |
iscc /DBaseDir="${{github.workspace}}" /DInstallDir="${{runner.workspace}}\install-teamtalk" TeamTalk5.iss
move Output\*.exe ${{runner.workspace}}\
- name: Configure CMake for prebuilt toolchain
working-directory: ${{runner.workspace}}
run: >-
cmake -S TeamTalk5 -B output-developer -A ${{ matrix.cmakeplatform }}
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2_PERF=OFF
-DFEATURE_WEBRTC=OFF
-DTOOLCHAIN_BUILD_EXTERNALPROJECTS=OFF
-DBUILD_TEAMTALK_CLIENT_TEAMTALKAPP_DOTNET=OFF
-DTOOLCHAIN_INSTALL_PREFIX=${{runner.workspace}}/install-toolchain
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install-teamtalk
- name: Build debug TeamTalk using prebuilt toolchain
working-directory: ${{runner.workspace}}
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\${{ matrix.vcvars }}"
cmake --build output-developer --parallel --config Debug
- name: Upload Inno Setup installer artifact
if: matrix.arch == 'x64'
uses: actions/upload-artifact@v7
with:
name: teamtalk-installer-windows-${{ matrix.arch }}
path: ${{runner.workspace}}/TeamTalk_*.exe
- name: Upload TeamTalk SDK artifact
uses: actions/upload-artifact@v7
with:
name: teamtalksdk-windows-${{ matrix.arch }}
path: ${{runner.workspace}}/install-teamtalk
- name: Upload TeamTalk portable artifact
uses: actions/upload-artifact@v7
with:
name: teamtalk-portable-${{ matrix.portablearch }}
path: ${{github.workspace}}/Setup/Portable/TeamTalk_*_Portable-${{ matrix.portablearch }}
- name: Upload TeamTalk Pro Server artifact
uses: actions/upload-artifact@v7
with:
name: teamtalkpro-${{ matrix.portablearch }}
path: ${{github.workspace}}/Setup/Portable/teamtalkpro-*-${{ matrix.portablearch }}
- name: Perform CodeQL Analysis
if: matrix.arch == 'x64' && !cancelled()
uses: github/codeql-action/analyze@v4
with:
category: "/language:csharp"