Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
a66a959
Modify workflow to run unit tests after building DLS from sources.
nszczygl9 Apr 21, 2026
a6699bd
Fix paths
nszczygl9 Apr 21, 2026
4434054
modify workflow
nszczygl9 Apr 21, 2026
b5ef31a
add debug commands to check folders
nszczygl9 Apr 22, 2026
05b12d6
modify workflow
nszczygl9 Apr 22, 2026
5ff7eae
fix operator
nszczygl9 Apr 22, 2026
3bbe246
remove flag
nszczygl9 Apr 22, 2026
b0889ee
add openvino module
nszczygl9 Apr 22, 2026
7a184ae
Change dlstreamer folder location and related paths
nszczygl9 Apr 22, 2026
4140697
add missing step for displaying results
nszczygl9 Apr 22, 2026
4b60859
add googletest submodule update
nszczygl9 Apr 22, 2026
746bce9
add ${CMAKE_BINARY_DIR}/deps/rdkafka-bin/include
nszczygl9 Apr 23, 2026
bddb78d
Fix results dir
nszczygl9 Apr 23, 2026
9e682e8
remove DOWNLOAD_EXTRACT_TIMESTAMP
nszczygl9 Apr 23, 2026
4ff4675
Added extra includes in test cmake file
pbartosik Apr 24, 2026
d5e6efb
swapped method of searching for kafka
pbartosik Apr 24, 2026
8efeef4
change kafka compilation method
pbartosik Apr 24, 2026
e4e507f
removed parameter not available on u22
pbartosik Apr 24, 2026
6a0051b
Merge branch 'nsz-unit-tests' of https://github.com/open-edge-platfor…
pbartosik Apr 24, 2026
3f60728
explicitly setting library paths
pbartosik Apr 24, 2026
ff2e086
Merge branch 'nsz-unit-tests' of https://github.com/open-edge-platfor…
pbartosik Apr 24, 2026
a1cb846
added a debug print
pbartosik Apr 25, 2026
123c13d
Merge branch 'main' into nsz-unit-tests
nszczygl9 Apr 27, 2026
2d298cf
come back to old paths
nszczygl9 Apr 27, 2026
0911192
come back to old paths
nszczygl9 Apr 27, 2026
05e22b5
add few adjustements
nszczygl9 Apr 27, 2026
5283cfd
fix license header and remove dev building step
nszczygl9 Apr 27, 2026
9e8b49b
fix pr workflow
nszczygl9 Apr 27, 2026
d9cc739
change runner to external vm
nszczygl9 Apr 27, 2026
2f2477d
change results_dir path
nszczygl9 Apr 27, 2026
8d42ade
fix path
nszczygl9 Apr 27, 2026
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
95 changes: 85 additions & 10 deletions .github/workflows/dls-build-sources-make-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ on:
permissions: {}
env:
dlstreamer-version: "2026.0.0"
DLS_REL_PATH: "./dlstreamer-repo"
DLS_REL_PATH: "$HOME/dlstreamer-repo"
MODELS_PATH: "$HOME/models"
VIDEO_INPUTS_PATH: "$HOME/videos"
RESULTS_DIR: "/home/runner/dlstreamer-repo/unit-test-results"

jobs:
setup:
Expand Down Expand Up @@ -43,7 +46,7 @@ jobs:
- os: ubuntu-22.04
runner: ubuntu-22.04
- os: ubuntu-24.04
runner: dlstreamer
runner: tgl-ubuntu24
steps:
- name: Skip or execute based on configuration
if: needs.setup.outputs.should_run == 'false'
Expand All @@ -58,17 +61,21 @@ jobs:
sudo rm -rf dlstreamer-repo

- name: Check out dlstreamer repository
if: needs.setup.outputs.should_run == 'true'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
path: dlstreamer-repo

- name: Move to home directory
run: |
mv dlstreamer-repo $HOME/dlstreamer-repo

- name: Init submodules
if: needs.setup.outputs.should_run == 'true'
run: |
cd dlstreamer-repo
cd ${{ env.DLS_REL_PATH }}
git submodule update --init thirdparty/spdlog
git submodule update --init thirdparty/googletest

# ======================================================== BUILDING PART ========================================================
- name: Install prerequisites
Expand Down Expand Up @@ -118,7 +125,7 @@ jobs:
python3 -m venv ~/python3venv
source ~/python3venv/bin/activate
pip install --upgrade pip==24.0
pip install meson==1.4.1 ninja==1.11.1.1
pip install meson==1.4.1 ninja==1.11.1.1 pytest==8.3.3 openvino==2026.0.0

- name: Install OpenVINO
if: needs.setup.outputs.should_run == 'true'
Expand Down Expand Up @@ -164,7 +171,13 @@ jobs:
source /opt/intel/openvino_genai/setupvars.sh
echo " "
echo "Building DL Streamer using make build..."
make build
if [[ ${{ matrix.os }} == "ubuntu-24.04" ]]; then
echo "Building DL Streamer with ENABLE_TESTS=ON flag..."
make build ENABLE_TESTS=ON
else
echo "Building only DL Streamer..."
make build
fi

- name: Install DL Streamer
if: needs.setup.outputs.should_run == 'true'
Expand Down Expand Up @@ -203,8 +216,8 @@ jobs:
export PATH="/opt/intel/dlstreamer/Release/bin:/opt/intel/dlstreamer/gstreamer/bin:/opt/intel/dlstreamer/opencv/bin:$HOME/.local/bin:$HOME/python3venv/bin:$PATH"
export PKG_CONFIG_PATH="/opt/intel/dlstreamer/Release/lib/pkgconfig:/opt/intel/dlstreamer/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
export GST_PLUGIN_FEATURE_RANK=${GST_PLUGIN_FEATURE_RANK},ximagesink:MAX
export GI_TYPELIB_PATH="/opt/intel/dlstreamer/gstreamer/lib/girepository-1.0:/opt/intel/dlstreamer/lib/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0"
export PYTHONPATH="/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:/opt/intel/dlstreamer/python:/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:$PYTHONPATH"
export GI_TYPELIB_PATH="$HOME/dlstreamer-repo/build/src/gst/metadata:/opt/intel/dlstreamer/gstreamer/lib/girepository-1.0:/opt/intel/dlstreamer/lib/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0"
export PYTHONPATH="$HOME/dlstreamer-repo/build/deps/gstreamer-bin/lib/python3/dist-packages:/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:/opt/intel/dlstreamer/python:/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:$PYTHONPATH"
echo " "

echo "Verifying DL Streamer installation..."
Expand All @@ -216,9 +229,71 @@ jobs:
gst-inspect-1.0 gvafpscounter
gst-inspect-1.0 gvagenai

- name: Create test results folder
if: needs.setup.outputs.should_run == 'true' && matrix.os == 'ubuntu-24.04'
run: |
mkdir -p ${{ env.RESULTS_DIR }}
chmod -R 777 ${{ env.RESULTS_DIR }}

- name: Run Unit tests (ctests and pytests)
if: needs.setup.outputs.should_run == 'true' && matrix.os == 'ubuntu-24.04'
run: |
echo "Setting up DL Streamer environment..."
export LIBVA_DRIVER_NAME=iHD
export GST_PLUGIN_PATH="/opt/intel/dlstreamer/Release/lib:/opt/intel/dlstreamer/gstreamer/lib/gstreamer-1.0:$GST_PLUGIN_PATH"
export LD_LIBRARY_PATH="/opt/intel/dlstreamer/Release/lib:/opt/intel/dlstreamer/gstreamer/lib:/opt/intel/dlstreamer/opencv/lib:/opt/intel/dlstreamer/rdkafka/lib:$LD_LIBRARY_PATH"
export LIBVA_DRIVERS_PATH="/usr/lib/x86_64-linux-gnu/dri"
export GST_VA_ALL_DRIVERS="1"
export PATH="/opt/intel/dlstreamer/Release/bin:/opt/intel/dlstreamer/gstreamer/bin:/opt/intel/dlstreamer/opencv/bin:$HOME/.local/bin:$HOME/python3venv/bin:$PATH"
export PKG_CONFIG_PATH="/opt/intel/dlstreamer/Release/lib/pkgconfig:/opt/intel/dlstreamer/gstreamer/lib/pkgconfig:$PKG_CONFIG_PATH"
export GST_PLUGIN_FEATURE_RANK=${GST_PLUGIN_FEATURE_RANK},ximagesink:MAX
export GI_TYPELIB_PATH="${{ env.DLS_REL_PATH }}/build/src/gst/metadata:/opt/intel/dlstreamer/gstreamer/lib/girepository-1.0:/opt/intel/dlstreamer/lib/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0"
export PYTHONPATH="${{ env.DLS_REL_PATH }}/build/deps/gstreamer-bin/lib/python3/dist-packages:/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:/opt/intel/dlstreamer/python:/opt/intel/dlstreamer/gstreamer/lib/python3/dist-packages:$HOME/dlstreamer-repo/scripts/optimizer:$PYTHONPATH"
export MODELS_PROC_PATH="${{ env.DLS_REL_PATH }}/samples/gstreamer/model_proc"
export MODELS_PATH="${{ env.MODELS_PATH }}"
export VIDEO_EXAMPLES_DIR="${{ env.VIDEO_INPUTS_PATH }}"
echo " "
source ~/python3venv/bin/activate
${{ env.DLS_REL_PATH }}/tests/scripts/run_unit_tests.sh "${{ env.DLS_REL_PATH }}/build" "" "${{ env.RESULTS_DIR }}"

# this script creates output file called unit_test_summary.txt
- name: Run python script to get Unit Test results
if: always() && needs.setup.outputs.should_run == 'true' && matrix.os == 'ubuntu-24.04'
run: |
source ~/python3venv/bin/activate
python3 ${{ env.DLS_REL_PATH }}/tests/scripts/unit_test_results.py ${{ env.RESULTS_DIR }}

- name: Check and display unit test results
if: always() && needs.setup.outputs.should_run == 'true' && matrix.os == 'ubuntu-24.04'
run: |
RESULTS_FILE="${{ env.RESULTS_DIR }}/unit_test_summary.txt"

# Add results to summary
echo "## Test Summary for Unit Tests on ${{ matrix.runner }}" >> $GITHUB_STEP_SUMMARY
cat "$RESULTS_FILE" >> $GITHUB_STEP_SUMMARY

# Check for failures and fail if any
CTEST_FAILED=$(grep "CTest:" "$RESULTS_FILE" | grep -o "Failed: [0-9]*" | awk '{print $2}')
PYTEST_FAILED=$(grep "Pytest:" "$RESULTS_FILE" | grep -o "Failed: [0-9]*" | awk '{print $2}')

TOTAL_FAILED=$((CTEST_FAILED + PYTEST_FAILED))
if [ "$TOTAL_FAILED" -gt 0 ]; then
echo "::error::$TOTAL_FAILED test(s) failed (CTest: $CTEST_FAILED, Pytest: $PYTEST_FAILED)"
exit 1
fi

- name: Upload test results
if: always() && needs.setup.outputs.should_run == 'true' && matrix.os == 'ubuntu-24.04'
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # 7.0.0
with:
name: DLS_unit_tests_tgl_${{ matrix.ubuntu_version }}
path: ${{ env.RESULTS_DIR }}/*.xml

# ======================================================== CLEANUP PART ========================================================
- name: Clean up
if: always() && needs.setup.outputs.should_run == 'true'
run: |
rm -rf ~/python3venv
sudo rm -rf ${{ env.DLS_REL_PATH }}
rm -rf dlstreamer-repo
rm -rf ${{ env.DLS_REL_PATH }}
rm -rf ${{ env.RESULTS_DIR }}
24 changes: 0 additions & 24 deletions .github/workflows/dls-pr-workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -387,13 +387,6 @@ jobs:
name: "DLS BUILD: make build"
uses: ./.github/workflows/dls-build-sources-make-build.yaml

dls-build-dev-images-and-run-unit-tests:
permissions:
contents: read
packages: read
name: "DLS BUILD: dev imgs & run unit tests"
uses: ./.github/workflows/dls-build-dev-docker-images-and-run-unit.yaml

dls-build-and-test-deb-and-deb_img:
permissions:
contents: read
Expand Down Expand Up @@ -481,23 +474,6 @@ jobs:
exit 1
fi

check-dev-images-unit-tests-status:
needs: dls-build-dev-images-and-run-unit-tests
runs-on: dlstreamer
name: "Check Dev Images & Unit Tests Status"
if: always()
steps:
- name: Report dev images & unit tests status
env:
dls_build_dev_images_and_run_unit_tests_result: ${{ needs.dls-build-dev-images-and-run-unit-tests.result }}
run: |
if [ "${dls_build_dev_images_and_run_unit_tests_result}" == "success" ]; then
echo "✅ Dev images & unit tests completed successfully!"
else
echo "❌ Dev images & unit tests failed with status: ${dls_build_dev_images_and_run_unit_tests_result}"
exit 1
fi

check-deb-build-status:
needs: dls-build-and-test-deb-and-deb_img
runs-on: dlstreamer
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ endif()

project(DL_Streamer C CXX)

include_directories("${CMAKE_BINARY_DIR}/deps/install/include;${CMAKE_BINARY_DIR}/deps/gstreamer-bin/include;${CMAKE_BINARY_DIR}/deps/opencv-bin/include")
include_directories("${CMAKE_BINARY_DIR}/deps/install/include;${CMAKE_BINARY_DIR}/deps/gstreamer-bin/include;${CMAKE_BINARY_DIR}/deps/opencv-bin/include;${CMAKE_BINARY_DIR}/deps/rdkafka-bin/include")

if (WIN32)
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
Expand Down
2 changes: 0 additions & 2 deletions dependencies/opencv.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ ExternalProject_Add(
PREFIX ${CMAKE_BINARY_DIR}/opencv_contrib
URL https://github.com/opencv/opencv_contrib/archive/${DESIRED_VERSION}.zip
URL_MD5 2c5ac0e4fc371d3804131ab3a1266fdd
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
Expand All @@ -27,7 +26,6 @@ ExternalProject_Add(
PREFIX ${CMAKE_BINARY_DIR}/opencv
URL https://github.com/opencv/opencv/archive/${DESIRED_VERSION}.zip
URL_MD5 3774391cd16823fd4c51078cfee36e8b
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
CMAKE_GENERATOR Ninja
TEST_COMMAND ""
INSTALL_COMMAND ninja install
Expand Down
9 changes: 2 additions & 7 deletions dependencies/rdkafka.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,10 @@ set(DESIRED_VERSION 2.12.1)
ExternalProject_Add(
rdkafka
PREFIX ${CMAKE_BINARY_DIR}/rdkafka
URL https://github.com/edenhill/librdkafka/archive/v${DESIRED_VERSION}.tar.gz
URL https://github.com/confluentinc/librdkafka/archive/v${DESIRED_VERSION}.tar.gz
URL_MD5 86ed3acd2f9d9046250dea654cee59a8
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
BUILD_IN_SOURCE 1
BUILD_COMMAND make
INSTALL_COMMAND make install
TEST_COMMAND ""
CONFIGURE_COMMAND ./configure
--prefix=${CMAKE_BINARY_DIR}/rdkafka-bin
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/rdkafka-bin
)

if (INSTALL_DLSTREAMER)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# ==============================================================================
# Copyright (C) 2018-2025 Intel Corporation
# Copyright (C) 2018-2026 Intel Corporation
#
# SPDX-License-Identifier: MIT
# ==============================================================================

set (TARGET_NAME "test_metapublish_kafka")

include_directories("${CMAKE_BINARY_DIR}/deps/install/include;${CMAKE_BINARY_DIR}/deps/gstreamer-bin/include;${CMAKE_BINARY_DIR}/deps/opencv-bin/include;${CMAKE_BINARY_DIR}/deps/rdkafka-bin/include")


find_package(PkgConfig REQUIRED)
find_library(KAFKA rdkafka++ REQUIRED)
find_package(RdKafka 2.12.1...<2.14 REQUIRED)
pkg_check_modules(GSTBASE gstreamer-base-1.0>=1.16 REQUIRED)
pkg_check_modules(GSTREAMER gstreamer-1.0>=1.16 REQUIRED)

Expand All @@ -29,7 +32,7 @@ target_link_libraries(${TARGET_NAME}
PRIVATE
gtest
gmock
${KAFKA}
RdKafka::rdkafka++
gvametapublishkafka
${GSTREAMER_LIBRARIES}
${GSTBASE_LIBRARIES}
Expand Down
Loading