Skip to content
Open
175 changes: 93 additions & 82 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,90 +1,101 @@
name: gstd CI
name: gstd CI

on:
push:
branches:
- master
- develop
pull_request:
branches:
- develop
on:
push:
branches:
- master
- develop
pull_request:
branches:
- develop

jobs:
autotools:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
include:
- os: ubuntu-22.04
remove-unwind: fix-unwind
jobs:
autotools:
strategy:
fail-fast: false
matrix:
ubuntu_version: [ "20.04", "22.04", "24.04" ]
include:
- ubuntu_version: "20.04"
libsoup2: "libsoup2.4-dev"

runs-on: ${{ matrix.os }}
runs-on: ubuntu-24.04
container:
image: ubuntu:${{ matrix.ubuntu_version }}

steps:
- uses: actions/checkout@v2
- if: ${{ matrix.remove-unwind }}
run: sudo apt remove libunwind-14-dev
- name: Dependecies
run: |
sudo apt update
sudo apt install automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libglib2.0-dev libjson-glib-dev gtk-doc-tools libedit-dev libncursesw5-dev
sudo apt install libdaemon-dev libjansson-dev python3-pip python3-setuptools libsoup2.4-dev
- name: Generate
run: ./autogen.sh
- name: Configure
run: ./configure CFLAGS=-Werror
- name: Compile
run: make
- name: Checks
run: make check
- name: Install
run: sudo make install
- name: Check pygstc installation
run: python3 -c "import pygstc"
- name: List Pipelines Verification
run: |
gstd -e
gstd-client list_pipelines
steps:
- uses: actions/checkout@v2
- name: Dependecies
run: |
export DEBIAN_FRONTEND=noninteractive
apt update
apt install -y automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
apt install -y libglib2.0-dev libjson-glib-dev gtk-doc-tools libedit-dev libncursesw5-dev
apt install -y libdaemon-dev libjansson-dev python3-pip python3-setuptools
if [ "${{ matrix.libsoup2 }}" ]; then
apt install -y libsoup2.4-dev
else
apt install -y libsoup-3.0-dev
fi
- name: Generate
run: ./autogen.sh
- name: Configure
run: ./configure CFLAGS=-Werror
- name: Compile
run: make
- name: Checks
run: make check
- name: Install
run: make install
- name: Check pygstc installation
run: python3 -c "import pygstc"
- name: List Pipelines Verification
run: |
gstd -e
gstd-client list_pipelines

meson:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
include:
- os: ubuntu-22.04
remove-unwind: fix-unwind
meson:
strategy:
fail-fast: false
matrix:
ubuntu_version: [ "20.04", "22.04", "24.04" ]
include:
- ubuntu_version: "24.04"
meson_opts: "-Dpython.install_env=auto"
- ubuntu_version: "20.04"
libsoup2: "libsoup2.4-dev"

runs-on: ${{ matrix.os }}
runs-on: ubuntu-24.04
container:
image: ubuntu:${{ matrix.ubuntu_version }}

steps:
- uses: actions/checkout@v2
- if: ${{ matrix.remove-unwind }}
run: sudo apt remove libunwind-14-dev
- name: Dependecies
run: |
sudo apt update
sudo apt install automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libglib2.0-dev libjson-glib-dev gtk-doc-tools libedit-dev libncursesw5-dev
sudo apt install libdaemon-dev libjansson-dev python3-pip python3-setuptools libsoup2.4-dev
sudo apt install ninja-build python3-wheel
sudo pip3 install meson
steps:
- uses: actions/checkout@v2
- name: Dependecies
run: |
export DEBIAN_FRONTEND=noninteractive
apt update
apt install -y automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
apt install -y libglib2.0-dev libjson-glib-dev gtk-doc-tools libedit-dev libncursesw5-dev
apt install -y libdaemon-dev libjansson-dev python3-pip python3-setuptools
if [ "${{ matrix.libsoup2 }}" ]; then
apt install -y libsoup2.4-dev
else
apt install -y libsoup-3.0-dev
fi
apt install -y ninja-build meson

- name: Generate for Ubuntu 20.04 and above
run: meson --werror build -Dpython.install_env=auto
- name: Compile
run: ninja -C build
- name: Checks
run: ninja -C build test
- name: Install
run: sudo ninja -C build install
- name: Check pygstc installation
run: python3 -c "import pygstc"
- name: List Pipelines Verification
run: |
gstd -e
gstd-client list_pipelines
- name: Generate for Ubuntu 20.04 and above
run: meson --werror build ${{ matrix.meson_opts }}
- name: Compile
run: ninja -C build
- name: Checks
run: ninja -C build test
- name: Install
run: ninja -C build install
- name: Check pygstc installation
run: python3 -c "import pygstc"
- name: List Pipelines Verification
run: |
gstd -e
gstd-client list_pipelines
26 changes: 25 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ AC_INIT([gstd],[0.15.2])
dnl required version of gstreamer and gst-plugins-base
GST_REQUIRED=1.0.0

dnl required version of libsoup
LIBSOUP3_REQUIRED=3.0
LIBSOUP2_REQUIRED=2.4

dnl required version of gio
GIO_REQUIRED=2.44.1

Expand Down Expand Up @@ -85,7 +89,27 @@ PKG_CHECK_MODULES(GST, [
])
])

PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.32])
PKG_CHECK_MODULES([LIBSOUP], [libsoup-3.0 >= 3.0], [
AC_DEFINE([HAVE_LIBSOUP3], [1], [Define if libsoup3 exists.])
], [
PKG_CHECK_MODULES([LIBSOUP], [libsoup-2.4 >= 2.4], [
AC_MSG_WARN(libsoup-2.4 detected: this library will be deprecated in upcoming releases.
Consider migrating to libsoup-3.0.)
], [
AC_DEFINE([HAVE_LIBSOUP2], [1], [Define if libsoup2 exists.])
], [
AC_MSG_ERROR([
Can't find any of the following LIBSOUP development packages:

libsoup-3.0 >= $LIBSOUP3_REQUIRED
libsoup-2.4 >= $LIBSOUP2_REQUIRED (to be deprecated in incoming releases)

Please make sure you have the necessary LIBSOUP3 or LIBSOUP2
development headers installed.
])
])
])

AC_SUBST(LIBSOUP_CFLAGS)
AC_SUBST(LIBSOUP_LIBS)

Expand Down
Loading
Loading