Skip to content

Use latest macOS image for GitHub Actions #3105

Use latest macOS image for GitHub Actions

Use latest macOS image for GitHub Actions #3105

Workflow file for this run

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 }}