Smoketest: Use system Catch2 #6062
Workflow file for this run
This file contains hidden or 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: SmokeTest | |
| on: | |
| push: | |
| branches: [ "master" ] | |
| pull_request: | |
| branches: [ "master" ] | |
| env: | |
| # TeamTalk unit test environment variables | |
| INPUTDEVICEID: 1978 | |
| OUTPUTDEVICEID: 1978 | |
| VIDEODEVICEID: None | |
| VERBOSE: 0 | |
| GITHUBSKIP: 1 | |
| jobs: | |
| build: | |
| if: "!startsWith(github.head_ref, 'debug')" | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Set up Java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '25' | |
| - name: Update Ubuntu repository | |
| run: sudo apt-get update | |
| - name: Install dependencies | |
| working-directory: ${{github.workspace}}/Build | |
| run: sudo make depend-ubuntu24 | |
| - name: Install SmokeTest dependencies | |
| run: >- | |
| sudo apt-get install | |
| catch2 | |
| libace-dev | |
| libace-inet-dev | |
| libace-inet-ssl-dev | |
| libace-ssl-dev | |
| libavcodec-dev | |
| libavdevice-dev | |
| libavfilter-dev | |
| libavformat-dev | |
| libavutil-dev | |
| libminiupnpc-dev | |
| libogg-dev | |
| libopus-dev | |
| libswresample-dev | |
| libswscale-dev | |
| libspeex-dev | |
| libspeexdsp-dev | |
| libtinyxml2-dev | |
| libvpx-dev | |
| portaudio19-dev | |
| valgrind | |
| - name: Configure CMake | |
| working-directory: ${{runner.workspace}} | |
| run: >- | |
| cmake -S TeamTalk5 -B output -G Ninja | |
| -DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON | |
| -DFEATURE_WEBRTC=OFF | |
| -DTOOLCHAIN_ACE=OFF | |
| -DTOOLCHAIN_CATCH2=OFF | |
| -DTOOLCHAIN_FFMPEG=OFF | |
| -DTOOLCHAIN_LIBVPX=OFF | |
| -DTOOLCHAIN_MINIUPNPC=OFF | |
| -DTOOLCHAIN_OGG=OFF | |
| -DTOOLCHAIN_OPENSSL=OFF | |
| -DTOOLCHAIN_OPUS=OFF | |
| -DTOOLCHAIN_PORTAUDIO=OFF | |
| -DTOOLCHAIN_SPEEX=OFF | |
| -DTOOLCHAIN_SPEEXDSP=OFF | |
| -DTOOLCHAIN_TINYXML2=OFF | |
| -DTOOLCHAIN_ZLIB=OFF | |
| - name: Build | |
| working-directory: ${{runner.workspace}}/output | |
| run: cmake --build . | |
| - name: Run Java Server API tests (non-encrypted) | |
| working-directory: ${{github.workspace}}/Library/TeamTalkJNI | |
| run: make runjunitsrv | |
| env: | |
| ENCRYPTED: 0 | |
| WEBRTC: 0 | |
| - name: Run Java Server API tests (encrypted) | |
| working-directory: ${{github.workspace}}/Library/TeamTalkJNI | |
| run: make runjunitsrv | |
| env: | |
| ENCRYPTED: 1 | |
| WEBRTC: 0 | |
| - name: Start TeamTalk Standard Server | |
| working-directory: ${{github.workspace}} | |
| 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: ${{github.workspace}} | |
| 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: ${{github.workspace}} | |
| run: | | |
| source env.sh | |
| pytest-3 Library/TeamTalkPy/test/teamtalk_test.py | |
| - name: Run Python client | |
| working-directory: ${{github.workspace}} | |
| run: | | |
| source env.sh | |
| make -C Client/ttserverlogpy | |
| - name: Run Catch unit tests | |
| working-directory: ${{github.workspace}}/Library/TeamTalkLib/test | |
| run: ./catchtt --durations yes | |
| - name: Stop TeamTalk Pro Server | |
| run: killall tt5prosrv | |
| - name: Run Java unit tests (non-encrypted) | |
| working-directory: ${{github.workspace}}/Library/TeamTalkJNI | |
| run: make runjunit | |
| env: | |
| ENCRYPTED: 0 | |
| WEBRTC: 0 | |
| - name: Stop TeamTalk Standard Server | |
| run: killall tt5srv | |
| - name: Start TeamTalk Pro Server (non-encrypted) | |
| working-directory: ${{github.workspace}} | |
| run: | | |
| cp -f Library/TeamTalkLib/test/tt5srv.xml_template Server/tt5srv.xml | |
| Server/tt5prosrv -d -c Server/tt5srv.xml | |
| - name: Run Java unit tests with shared audio devices (non-encrypted) | |
| working-directory: ${{github.workspace}}/Library/TeamTalkJNI | |
| run: make runjunitpro | |
| env: | |
| ENCRYPTED: 0 | |
| WEBRTC: 0 | |
| INPUTDEVICEID: 4026 | |
| OUTPUTDEVICEID: 4026 | |
| - name: Stop TeamTalk Pro Server (non-encrypted) | |
| run: killall tt5prosrv | |
| - name: Start TeamTalk Pro Server (encrypted) | |
| working-directory: ${{github.workspace}} | |
| 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 Java unit tests with virtual audio device (encrypted) | |
| working-directory: ${{github.workspace}}/Library/TeamTalkJNI | |
| run: make runjunitpro | |
| env: | |
| ENCRYPTED: 1 | |
| WEBRTC: 0 | |
| - name: Stop TeamTalk Pro Server (encrypted) | |
| run: killall tt5prosrv |