Add Metal framework as dependency on macOS #3503
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: SmokeTest | |
on: [push] | |
env: | |
# TeamTalkJNI JUnit environment variables | |
INPUTDEVICEID: 1978 | |
OUTPUTDEVICEID: 1978 | |
VIDEODEVICEID: None | |
VERBOSE: 0 | |
GITHUBSKIP: 1 | |
jobs: | |
build: | |
# The CMake configure and build commands are platform agnostic and should work equally | |
# well on Windows or Mac. You can convert this to a matrix build if you need | |
# cross-platform coverage. | |
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
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: Source environment | |
working-directory: ${{runner.workspace}}/TeamTalk5 | |
run: source env.sh | |
- 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 | |
- name: Install Dependencies | |
run: >- | |
sudo apt install | |
cmake | |
doxygen | |
junit4 | |
libace-dev | |
libace-inet-dev | |
libace-inet-ssl-dev | |
libace-ssl-dev | |
libasound2-dev | |
libogg-dev | |
libopus-dev | |
libpcap-dev | |
libqt5texttospeech5-dev | |
libqt5x11extras5-dev | |
libspeex-dev | |
libspeexdsp-dev | |
libssl-dev | |
libtinyxml-dev | |
libvpx-dev | |
libxss-dev | |
ninja-build | |
portaudio19-dev | |
python3-minimal | |
python3-pytest | |
qtbase5-dev | |
qtmultimedia5-dev | |
qttools5-dev | |
qttools5-dev-tools | |
valgrind | |
yasm | |
zlib1g-dev | |
- name: Clone submodules | |
working-directory: ${{runner.workspace}}/TeamTalk5 | |
run: git submodule update --init Library/TeamTalkLib/test/testdata | |
- name: Create Build Environment | |
# Some projects don't allow in-source building, so create a separate build directory | |
# We'll use this as our working directory for all subsequent commands | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
- name: Configure CMake | |
# Use a bash shell so we can use the same syntax for environment variable | |
# access regardless of the host operating system | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
# Note the current convention is to use the -S and -B options here to specify source | |
# and build directories, but this is only available with CMake 3.13 and higher. | |
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12 | |
run: >- | |
cmake $GITHUB_WORKSPACE -G Ninja | |
-DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON | |
-DFEATURE_PORTAUDIO=OFF | |
-DFEATURE_V4L2=OFF | |
-DFEATURE_WEBRTC=OFF | |
-DTOOLCHAIN_ACE=OFF | |
-DTOOLCHAIN_CATCH2=ON | |
-DTOOLCHAIN_FFMPEG=ON | |
-DTOOLCHAIN_LIBVPX=OFF | |
-DTOOLCHAIN_OGG=OFF | |
-DTOOLCHAIN_OPENSSL=OFF | |
-DTOOLCHAIN_OPUS=OFF | |
-DTOOLCHAIN_SPEEX=OFF | |
-DTOOLCHAIN_SPEEXDSP=OFF | |
-DTOOLCHAIN_TINYXML=OFF | |
-DTOOLCHAIN_ZLIB=OFF | |
- name: Build | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
# Execute the build. You can specify a specific target with "--target <NAME>" | |
run: cmake --build . | |
- 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: | | |
./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/ | |
cp Library/TeamTalkLib/test/ca.cer 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 |