Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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
58 changes: 58 additions & 0 deletions .github/workflows/gstreamer-webrtc-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: GStreamer WebRTC Integration Test

on:
workflow_dispatch:
pull_request:
paths:
- "lvgl/**"
- "tests/**"
- "docker/Dockerfile_gstreamer_webrtc_test"
- ".github/workflows/gstreamer-webrtc-test.yml"
push:
branches:
- main
- master
- webrtc_test
paths:
- "lvgl/**"
- "tests/**"
- "docker/Dockerfile_gstreamer_webrtc_test"
- ".github/workflows/gstreamer-webrtc-test.yml"

jobs:
gstreamer-webrtc:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
submodules: recursive

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build test Docker image
run: |
docker build \
--build-arg BASE_OS=ubuntu:24.04 \
-f docker/Dockerfile_gstreamer_webrtc_test \
-t lvgl_gstreamer_webrtc_test .

- name: Run GStreamer WebRTC integration test
run: |
docker run --rm \
-v "$(pwd)":/workdir \
-w /workdir \
lvgl_gstreamer_webrtc_test \
/bin/bash -ec "chmod +x tests/scripts/run_gstreamer_webrtc_test.sh && tests/scripts/run_gstreamer_webrtc_test.sh"

- name: Upload logs and artifacts on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: gstreamer-webrtc-artifacts
path: |
artifacts/gstreamer-webrtc/**
build-gstreamer-tests/Testing/Temporary/**
build-gstreamer-tests/**/*.png
if-no-files-found: warn
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,7 @@ dkms.conf
# IDE Project files
/.settings/
.*project

# GStreamer WebRTC test build outputs (wayland_protocols/ lives inside build-gstreamer-tests/)
/build-gstreamer-tests/
/artifacts/
54 changes: 54 additions & 0 deletions docker/Dockerfile_gstreamer_webrtc_test

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is probably not needed as we can add those packages to the existing docker image
Dockerfile_DEBIAN

Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
ARG BASE_OS=ubuntu:24.04
FROM ${BASE_OS}

RUN DEBIAN_FRONTEND="noninteractive" apt-get update

# Core build/test toolchain for LVGL tests
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y \
build-essential \
cmake \
git \
pkg-config \
python3 \
ruby \
ruby-dev \
curl \
ca-certificates \
libpng-dev \
libjpeg-dev \
libfreetype-dev \
libdrm-dev \
libinput-dev \
libglfw3-dev \
libgl1-mesa-dev \
libglew-dev \
libxkbcommon-dev \
wayland-protocols \
libwayland-dev \
&& rm -rf /var/lib/apt/lists/*

# GStreamer runtime + headers + commonly required plugins
RUN DEBIAN_FRONTEND="noninteractive" apt-get update && apt-get install -y \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav \
gstreamer1.0-nice \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-bad1.0-dev \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*

# Rust toolchain for gst-plugins-rs (webrtcsrc / signaller binaries)
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
Outdated
ENV PATH="/root/.cargo/bin:${PATH}"

# Pre-build gst-plugins-rs WebRTC plugins into the image
COPY tests/scripts/build_gst_plugins_rs.sh /build_gst_plugins_rs.sh
RUN chmod +x /build_gst_plugins_rs.sh && /build_gst_plugins_rs.sh
ENV GST_PLUGIN_PATH="/opt/gst-plugins-rs/target/release"

RUN mkdir /workdir
WORKDIR /workdir
2 changes: 1 addition & 1 deletion lvgl
Submodule lvgl updated 572 files
Binary file added ref_imgs/gstreamer/webrtc_smpte75.lp64.png

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ref_imgs are actually in the other directory. This needs to be removed.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading