Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions .github/workflows/libnice.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Libnice Build and Test

on:
push:
branches: [ 'master', 'main', 'release/**' ]
pull_request:
branches: [ '*' ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
libnice_build_test:
name: Libnice ${{ matrix.libnice_ref }} on ${{ matrix.os }}
timeout-minutes: 25
strategy:
matrix:
os: [ ubuntu-latest ]
libnice_ref: [ 'master', '0.1.22', '0.1.21' ]
fail-fast: false
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4

- name: Install build prerequisites
run: |
sudo apt-get update
sudo apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev meson cmake meson ninja-build pkg-config python3-ply python3-jinja2 python3-yaml libyaml-dev libgtest-dev libglib2.0-dev

- name: Build custom GnuTLS (wolfSSL provider)
run: |
GNUTLS_INSTALL=/opt/gnutls WOLFSSL_INSTALL=/opt/wolfssl ./setup.sh

- name: Clone libnice @ ref
run: |
git clone https://github.com/libnice/libnice.git
cd libnice
if [ "${{ matrix.libnice_ref }}" != "master" ]; then
git checkout ${{ matrix.libnice_ref }}
fi

- name: Configure & build with Meson/Ninja
working-directory: libnice
run: |
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:${PKG_CONFIG_PATH}"
export CPPFLAGS="-I/opt/gnutls/include ${CPPFLAGS}"
export LDFLAGS="-L/opt/gnutls/lib -Wl,-rpath,/opt/gnutls/lib ${LDFLAGS}"
export LD_LIBRARY_PATH="/opt/gnutls/lib:${LD_LIBRARY_PATH}"
meson setup build-gnutls
ninja -C build-gnutls

- name: Verify libnice links to /opt/gnutls/lib/libgnutls
working-directory: libnice
run: |
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:${PKG_CONFIG_PATH}"
export CPPFLAGS="-I/opt/gnutls/include ${CPPFLAGS}"
export LDFLAGS="-L/opt/gnutls/lib -Wl,-rpath,/opt/gnutls/lib ${LDFLAGS}"
export LD_LIBRARY_PATH="/opt/gnutls/lib:${LD_LIBRARY_PATH}"
LIB=$(find build-gnutls/nice -name 'libnice*.so*' | head -n1)
if [ -z "$LIB" ]; then
echo "libnice shared library not found" >&2
exit 1
fi
if ldd "$LIB" | grep -q '/opt/gnutls/lib/libgnutls'; then
ldd "$LIB" | grep libgnutls
else
ldd "$LIB" | grep libgnutls || true
exit 1
fi

- name: Run unit tests
working-directory: libnice
run: |
export G_MESSAGES_DEBUG=all
export NICE_DEBUG=all
export PKG_CONFIG_PATH="/opt/gnutls/lib/pkgconfig:${PKG_CONFIG_PATH}"
export CPPFLAGS="-I/opt/gnutls/include ${CPPFLAGS}"
export LDFLAGS="-L/opt/gnutls/lib -Wl,-rpath,/opt/gnutls/lib ${LDFLAGS}"
export LD_LIBRARY_PATH="/opt/gnutls/lib:${LD_LIBRARY_PATH}"
ninja -C build-gnutls test
Loading