Use latest macOS image for GitHub Actions #3105
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows | |
on: [push] | |
env: | |
# TeamTalk unit test environment variables | |
INPUTDEVICEID: 1978 | |
OUTPUTDEVICEID: 1978 | |
VIDEODEVICEID: None | |
VERBOSE: 0 | |
GITHUBSKIP: 1 | |
SKIPKNOWNBUGS: 1 | |
jobs: | |
msvc: | |
strategy: | |
matrix: | |
include: | |
- name: VS2019Release32 | |
vmimage: windows-2019 | |
cmakeplatform: Win32 | |
dotnetarch: x86 | |
qtarch: win32_msvc2019 | |
qtversion: '5.15.*' | |
msystem: MINGW32 | |
portablearch: win32 | |
- name: VS2019Release64 | |
vmimage: windows-2019 | |
cmakeplatform: x64 | |
dotnetarch: x64 | |
qtarch: win64_msvc2019_64 | |
qtversion: '6.5.*' | |
qtmodules: 'qtmultimedia qtspeech qtvirtualkeyboard' | |
msystem: MINGW64 | |
portablearch: win64 | |
exlude: | |
- name: VS2019Release32 | |
runs-on: ${{ matrix.vmimage }} | |
name: ${{ matrix.name }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
architecture: ${{ matrix.dotnetarch }} | |
- uses: jurplel/install-qt-action@v4 | |
with: | |
arch: '${{ matrix.qtarch }}' | |
version: '${{ matrix.qtversion }}' | |
modules: '${{ matrix.qtmodules }}' | |
cache-key-prefix: 'install-qt-action' | |
setup-python: 'false' | |
- uses: ssciwr/doxygen-install@v1 | |
with: | |
version: "1.9.8" | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
architecture: ${{ matrix.dotnetarch }} | |
- uses: darenm/Setup-VSTest@v1 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install pytest pytest-cov | |
- name: Print environment | |
shell: cmd | |
run: set | |
- name: Init TeamTalk Client submodules | |
working-directory: ${{runner.workspace}}/TeamTalk5 | |
run: | | |
git submodule update --init --recursive | |
- name: Generate CMake Projects | |
working-directory: ${{runner.workspace}} | |
shell: cmd | |
run: >- | |
cmake -S TeamTalk5 -B output -A ${{ matrix.cmakeplatform }} | |
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON | |
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2_PERF=OFF | |
-DFEATURE_LIBVPX=OFF | |
-DFEATURE_WEBRTC=OFF | |
-DTOOLCHAIN_LIBVPX=OFF | |
-DBUILD_TEAMTALK_CLIENT_TEAMTALKAPP_DOTNET=OFF | |
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install-teamtalk | |
- name: Build and Install CMake Projects | |
working-directory: ${{runner.workspace}} | |
shell: cmd | |
run: | | |
cmake --build output --parallel 8 --config Release --target install | |
echo ${{runner.workspace}}\TeamTalk5\Library\TeamTalk_DLL>> %GITHUB_PATH% | |
echo ${{runner.workspace}}\TeamTalk5\Library\TeamTalkJNI\libs>> %GITHUB_PATH% | |
echo PYTHONPATH=${{runner.workspace}}\TeamTalk5\Library\TeamTalkPy>> %GITHUB_ENV% | |
- name: Copy Server Configuration | |
working-directory: ${{runner.workspace}}/TeamTalk5 | |
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 Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5svc.exe -i | |
tt5svc.exe -s | |
- name: Start TeamTalk Professional Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5prosvc.exe -i | |
tt5prosvc.exe -s | |
- name: Catch unit-test | |
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkLib/test | |
shell: cmd | |
run: | | |
catchtt.exe --durations yes | |
- name: Restart TeamTalk Standard Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5svc.exe -e | |
tt5svc.exe -s | |
- name: Stop and Remove TeamTalk Professional Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/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 ${{runner.workspace}}\TeamTalk5\Library\TeamTalkLib\test\testdata testdata\ | |
VSTest.Console.exe /Platform:${{ matrix.dotnetarch }} TeamTalk5Test.NET.dll | |
- name: Run PyTest | |
working-directory: ${{runner.workspace}}/TeamTalk5/Library/TeamTalkPy/test | |
run: | | |
pytest teamtalk_test.py | |
- name: Run Python client | |
working-directory: ${{runner.workspace}}/TeamTalk5/Client/ttserverlogpy | |
run: | | |
python main.py | |
- name: Stop TeamTalk Standard Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5svc.exe -e | |
- name: Uninstall TeamTalk Standard Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5svc.exe -u | |
- name: Enable encryption | |
shell: cmd | |
run: | | |
echo ENCRYPTED=true>> %GITHUB_ENV% | |
- name: Start TeamTalk Professional Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/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 ${{runner.workspace}}\TeamTalk5\Library\TeamTalkLib\test\testdata testdata\ | |
VSTest.Console.exe /Platform:${{ matrix.dotnetarch }} TeamTalk5Test.NET.dll | |
- name: Stop TeamTalk Professional Service | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5prosvc.exe -e | |
- name: Uninstall TeamTalk Services | |
working-directory: ${{runner.workspace}}/TeamTalk5/Server | |
shell: cmd | |
run: | | |
tt5prosvc.exe -u | |
# Doxygen doesn't exist as GitHub action, so use pacman from MSYS64 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.msystem }} | |
path-type: inherit | |
install: make | |
- name: Compile TeamTalk5.chm | |
working-directory: ${{runner.workspace}}/TeamTalk5/Documentation/TeamTalk | |
shell: cmd | |
run: | | |
"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" output\index.hhp | |
EXIT /B 0 | |
- name: Make Portable Setup Targets | |
working-directory: ${{runner.workspace}} | |
run: | | |
cd install-teamtalk | |
export TEAMTALK_INSTALLDIR=$PWD | |
cd ../TeamTalk5 | |
source env.sh | |
cd Setup/Portable | |
make ${{ matrix.portablearch }} ${{ matrix.portablearch }}pro | |
shell: msys2 {0} | |
- name: Archive TeamTalk SDK Binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: teamtalksdk-windows-${{ matrix.dotnetarch }} | |
path: ${{runner.workspace}}/install-teamtalk | |
- name: Build Portable Archive | |
uses: actions/upload-artifact@v4 | |
with: | |
name: teamtalk-portable-${{ matrix.portablearch }} | |
path: ${{runner.workspace}}/TeamTalk5/Setup/Portable/TeamTalk_*_Portable-${{ matrix.portablearch }} | |
- name: Build TeamTalk Pro Server Archive | |
uses: actions/upload-artifact@v4 | |
with: | |
name: teamtalkpro-${{ matrix.portablearch }} | |
path: ${{runner.workspace}}/TeamTalk5/Setup/Portable/teamtalkpro-*-${{ matrix.portablearch }} |