Skip to content

Commit

Permalink
Ubuntu 24 GitHub workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
bear101 committed Nov 7, 2024
1 parent 9019b9d commit 5b31f83
Showing 1 changed file with 178 additions and 0 deletions.
178 changes: 178 additions & 0 deletions .github/workflows/ubuntu24.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
name: Ubuntu 24

on: [push]

env:
# TeamTalk unit test environment variables
INPUTDEVICEID: 1978
OUTPUTDEVICEID: 1978
VIDEODEVICEID: None
VERBOSE: 0
GITHUBSKIP: 1

jobs:
build:
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'

- name: Refresh Ubuntu-repo
run: sudo apt update

- 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
sudo apt install valgrind
sudo make -C Build depend-ubuntu24
dpkg -l
- name: Print env
run: printenv | sort

- name: Init TeamTalk Library submodules
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
git submodule update --init Library/TeamTalkLib/test/testdata
- name: Install TeamTalk Library Dependencies
working-directory: ${{runner.workspace}}/TeamTalk5
run: sudo make -C Build depend-ubuntu24

- name: Build TeamTalk Library and Apps
working-directory: ${{runner.workspace}}/TeamTalk5
shell: bash
run: |
source env.sh
make CMAKE_EXTRA="-DFEATURE_WEBRTC=OFF -DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2=ON -DBUILD_TEAMTALK_LIBRARY_UNITTEST_CATCH2_PERF=OFF -DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install" -C Build ubuntu24
echo TEAMTALK_INSTALLDIR=${{runner.workspace}}/install>> $GITHUB_ENV
- 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: valgrind --tool=memcheck --leak-check=full --error-exitcode=1 ./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/
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

- name: Run CMake Install Target
working-directory: ${{runner.workspace}}/TeamTalk5/Build/build-ubuntu24
run: cmake --build . --target install

- name: Upload TeamTalk Artifacts
uses: actions/upload-artifact@v3
with:
name: teamtalksdk-ubuntu24
path: ${{runner.workspace}}/install

- name: Make Ubuntu 24 Portable Archive
working-directory: ${{runner.workspace}}/TeamTalk5
run: |
source env.sh
cd Setup/Portable
make ubuntu24 ubuntu24pro
- name: Upload TeamTalk Portable artifact
uses: actions/upload-artifact@v3
with:
name: teamtalk-ubuntu24
path: ${{runner.workspace}}/TeamTalk5/Setup/Portable/teamtalk-*

- name: Upload TeamTalk Pro artifact
uses: actions/upload-artifact@v3
with:
name: teamtalkpro-ubuntu24
path: ${{runner.workspace}}/TeamTalk5/Setup/Portable/teamtalkpro-*

0 comments on commit 5b31f83

Please sign in to comment.