Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
d58c55a
Ci: Add basic smoke test workflow for self-hosted runners
KarolinaPomian Jul 28, 2025
bf591e9
DPDK added
KarolinaPomian Jul 28, 2025
5f88810
add smoke tests
KarolinaPomian Jul 29, 2025
3ae6391
smoke_test
KarolinaPomian Jul 29, 2025
25bd1b7
preparation: Checkout MCM
KarolinaPomian Jul 29, 2025
aa5ac1e
add list smoke tests
KarolinaPomian Jul 29, 2025
1118512
add configs for workflow
KarolinaPomian Jul 29, 2025
3b8b4ba
suppress errors 1 for cleanup_processes
KarolinaPomian Jul 29, 2025
e80af02
add data to extra info in media proxy
KarolinaPomian Jul 29, 2025
dd36a14
test SSHConnection configuration
KarolinaPomian Jul 29, 2025
2b50feb
SSHConnection
KarolinaPomian Jul 29, 2025
31f253c
assure removal of file after the test
KarolinaPomian Jul 30, 2025
5e92d6c
add preparation
KarolinaPomian Jul 30, 2025
6a1374e
remove ssh key creation
KarolinaPomian Jul 30, 2025
ac469a6
Update smoke_tests.yml
KarolinaPomian Jul 30, 2025
0cbf8dd
correct command
KarolinaPomian Jul 30, 2025
7b7cca6
build update
KarolinaPomian Jul 30, 2025
8824e6f
correct build
KarolinaPomian Jul 30, 2025
ba96639
use base_build.yml
KarolinaPomian Jul 30, 2025
e0525bc
workflow_call test
KarolinaPomian Jul 31, 2025
9a02985
add RxTxApp dependencies
KarolinaPomian Jul 31, 2025
2261418
add rxtxapp build dir
KarolinaPomian Jul 31, 2025
191abe9
linter fix
KarolinaPomian Aug 4, 2025
8f02168
DPDK fix
KarolinaPomian Aug 4, 2025
b06df55
prettier fix
KarolinaPomian Aug 4, 2025
cfa2f81
update smoke test list
KarolinaPomian Aug 5, 2025
6028d8a
linter fix
KarolinaPomian Aug 5, 2025
8427509
concurrency and logging correction
KarolinaPomian Aug 5, 2025
451db23
linter fix
KarolinaPomian Aug 5, 2025
fe6d9b0
use root and change concurrency
KarolinaPomian Aug 5, 2025
2fdefcb
linter fix
KarolinaPomian Aug 5, 2025
7c3135e
concurrency fix
KarolinaPomian Aug 5, 2025
cbca596
improve summary report
KarolinaPomian Aug 6, 2025
9f8a936
correct summary
KarolinaPomian Aug 6, 2025
ccda66e
change user to root for tests
KarolinaPomian Aug 6, 2025
2cb20f3
linter fix
KarolinaPomian Aug 6, 2025
eebdee9
linter fix
KarolinaPomian Aug 6, 2025
79f33e3
use 25.03 tag for testing
KarolinaPomian Aug 7, 2025
1a8cfe2
validation-prepare-setup-mcm remove checkout to tag
KarolinaPomian Aug 7, 2025
f4c64c5
improve log check
KarolinaPomian Aug 7, 2025
52f6030
Update smoke_tests.yml
KarolinaPomian Aug 8, 2025
7873dad
Update tests/validation/functional/local/audio/test_ffmpeg_audio.py
KarolinaPomian Aug 8, 2025
a37d50a
save configs
KarolinaPomian Aug 11, 2025
5bd096e
update log validation
KarolinaPomian Aug 11, 2025
a83675d
make build run on self-hosted
KarolinaPomian Aug 11, 2025
5c19c61
Install CMake from Kitware
KarolinaPomian Aug 11, 2025
e22bc5c
Install CMake via pip
KarolinaPomian Aug 11, 2025
3e53995
Install CMake via pip
KarolinaPomian Aug 11, 2025
22c91ae
Install CMake from Kitware
KarolinaPomian Aug 11, 2025
aa20d3e
Merge branch 'main' into smoke-tests
KarolinaPomian Aug 11, 2025
78e7000
Merge branch 'main' into smoke-tests
KarolinaPomian Aug 18, 2025
d3e0c25
Merge branch 'main' into smoke-tests
KarolinaPomian Aug 19, 2025
cce3b63
add get_log_folder_path
KarolinaPomian Aug 19, 2025
ff666b2
parametrize added to correct logging in demo
KarolinaPomian Aug 19, 2025
dc916c4
ffmpeg logging fix
KarolinaPomian Aug 19, 2025
fb8cc01
shutting to shuting and app to App
KarolinaPomian Aug 19, 2025
61fc2fc
RX to Rx
KarolinaPomian Aug 19, 2025
4784214
correct logging validation
KarolinaPomian Aug 19, 2025
8422386
Update .github/workflows/smoke_tests.yml
KarolinaPomian Aug 20, 2025
b875ac6
Fix permissions before checkout
KarolinaPomian Aug 20, 2025
d025086
add mtl script path
KarolinaPomian Aug 20, 2025
ce0f4b8
remove checkout
KarolinaPomian Aug 20, 2025
476db76
remove mtl and dpdk build and install
KarolinaPomian Aug 22, 2025
15f1f39
improved validation utilities and FFmpeg handling log checks and cleanup
KarolinaPomian Aug 25, 2025
9281324
Reset bare-metal-build.yml to previous commit
KarolinaPomian Aug 25, 2025
916106e
Refactor media file paths and FFmpeg configurations in validation tes…
KarolinaPomian Aug 25, 2025
ef2c347
Merge branch 'rxtxapp_logs_correction' into smoke-tests
KarolinaPomian Aug 26, 2025
dc0117b
Refactor log validation constants and remove unused log validation ut…
KarolinaPomian Aug 26, 2025
5d664cc
Update integrity and library paths in smoke tests configuration for a…
KarolinaPomian Aug 26, 2025
7d09459
Update bare-metal build and smoke tests for FFmpeg 7.0 integration an…
KarolinaPomian Aug 26, 2025
88a05be
Merge branch 'main' into smoke-tests
KarolinaPomian Aug 27, 2025
ee25d29
log correction
KarolinaPomian Aug 27, 2025
aedc101
linter fix and base build not run when not needed
KarolinaPomian Aug 27, 2025
2eb15a7
ffmpeg enable
KarolinaPomian Aug 27, 2025
c16c7aa
set to run on bcs-cicd-4
KarolinaPomian Aug 27, 2025
2c38cb0
add env.RUNNER
KarolinaPomian Aug 27, 2025
7969ed4
runner: bcs-cicd-4
KarolinaPomian Aug 27, 2025
82fe0ad
refactor: update runner configuration to use dynamic inputs
KarolinaPomian Aug 27, 2025
2118395
Merge branch 'main' into smoke-tests
KarolinaPomian Aug 27, 2025
6126e3e
refactor: simplify runner configuration by removing env.RUNNER
KarolinaPomian Aug 27, 2025
1bacd00
refactor: remove runner input from workflows and set static runner co…
KarolinaPomian Aug 27, 2025
0cb485a
refactor: update output path in ffmpeg tests to use dynamic topology …
KarolinaPomian Aug 27, 2025
16aac0c
linter fix
KarolinaPomian Aug 27, 2025
542588b
Revert "linter fix"
KarolinaPomian Aug 27, 2025
c9a6cde
linter fix
KarolinaPomian Aug 27, 2025
5c39b97
remove gaps
KarolinaPomian Aug 27, 2025
d547f62
linter black fix
KarolinaPomian Aug 27, 2025
f79b5f6
refactor: improve code formatting and readability in various test files
KarolinaPomian Aug 27, 2025
c38c001
linter fix
KarolinaPomian Aug 27, 2025
82e0dba
specify host to runner-4]
KarolinaPomian Aug 28, 2025
cee4b77
remove x64
KarolinaPomian Aug 28, 2025
facff74
keep only runs-on: [runner-4]
KarolinaPomian Aug 28, 2025
0b9894f
chore: add concurrency settings and ensure jobs run on runner-4
KarolinaPomian Aug 28, 2025
a22869c
remove ssh key root setup
KarolinaPomian Aug 28, 2025
e06f9ec
chore: update runner input for bare-metal build and streamline smoke …
KarolinaPomian Aug 28, 2025
9268b2c
fix build-baremetal-ubuntu
KarolinaPomian Aug 28, 2025
7d13ab4
linter update
KarolinaPomian Aug 28, 2025
6197855
refactor: enhance log validation to support non-strict phrase checking
KarolinaPomian Aug 28, 2025
5d39ae1
chore: add actionlint configuration files and update linter workflow
KarolinaPomian Aug 28, 2025
c56e361
fix: update runner configuration to remove array syntax
KarolinaPomian Aug 28, 2025
64f3c61
runner
KarolinaPomian Aug 28, 2025
ec94956
fix: clean up whitespace and improve readability in log validation ut…
KarolinaPomian Aug 28, 2025
3d9d232
fix: update runner configuration to use input variable and clean up w…
KarolinaPomian Aug 28, 2025
d3f967f
fix
KarolinaPomian Aug 28, 2025
797943d
fix: update self-hosted runner configuration to streamline labels
KarolinaPomian Aug 28, 2025
a5ebb33
runs-on: ["self-hosted", "runner-4"]
KarolinaPomian Aug 28, 2025
da9c654
runs-on: [Linux, self-hosted, DPDK]
KarolinaPomian Aug 28, 2025
a555bbe
fix
KarolinaPomian Aug 28, 2025
7f9f4a8
fix
KarolinaPomian Aug 28, 2025
35a63e5
fix: remove unused actionlint configuration and update linter workflow
KarolinaPomian Aug 28, 2025
dabee08
Create actionlint.yaml
staszczuk Aug 29, 2025
fc18f1f
Rename actionlint.yaml to actionlint.yml
staszczuk Aug 29, 2025
97e9812
fix: update runner labels and configuration for actionlint
KarolinaPomian Aug 29, 2025
a30457a
remove unecessary actionlint
KarolinaPomian Aug 29, 2025
f982b64
feat: add report summary workflow and update smoke tests to upload JS…
KarolinaPomian Aug 29, 2025
2ad9ad9
fix: update actions/upload-artifact version in workflows
KarolinaPomian Aug 29, 2025
ae3f6a8
feat: add report summary workflow to process and display test results
KarolinaPomian Aug 29, 2025
bd201fa
fix: correct report summary workflow filename in smoke tests
KarolinaPomian Aug 29, 2025
976e43a
fix: simplify report summary parsing and improve error handling
KarolinaPomian Aug 29, 2025
14fb319
fix: improve readability of skip message for unsupported PCM 8 format
KarolinaPomian Aug 29, 2025
20fe34e
Update .github/workflows/base_build.yml
KarolinaPomian Sep 3, 2025
1655ae9
Update tests/validation/Engine/const.py
KarolinaPomian Sep 3, 2025
e320b09
Update tests/validation/common/log_validation_utils.py
KarolinaPomian Sep 3, 2025
7569827
Update tests/validation/functional/local/audio/test_ffmpeg_audio.py
KarolinaPomian Sep 3, 2025
fb89f80
Update tests/validation/functional/local/video/test_ffmpeg_video.py
KarolinaPomian Sep 3, 2025
57ded33
Update const.py and log_validation_utils.py for improved configuratio…
KarolinaPomian Sep 3, 2025
18bcc5c
Update const.py and log_validation_utils.py for timeout adjustments a…
KarolinaPomian Sep 3, 2025
c6e92e1
Merge branch 'main' into smoke-tests
KarolinaPomian Sep 3, 2025
77bd2b4
add mtl logging
KarolinaPomian Sep 3, 2025
4aae3f7
linter fix
KarolinaPomian Sep 3, 2025
922c4df
Add conditional execution always for report summary job
KarolinaPomian Sep 3, 2025
a04da49
Update call-report-summary job condition to exclude pull requests
KarolinaPomian Sep 3, 2025
96bc057
Add detailed test results table to report summary
KarolinaPomian Sep 3, 2025
ce54955
Refactor JSON logging methods to accept customizable filenames and im…
KarolinaPomian Sep 3, 2025
d9e5ac0
Add optional log phrases for Rx validation and improve log validation…
KarolinaPomian Sep 3, 2025
3fee781
Enhance validation reporting by appending results to a consolidated r…
KarolinaPomian Sep 3, 2025
c96e863
Add consolidated validation summary logging to audio and video test c…
KarolinaPomian Sep 3, 2025
abe1e87
linter fix
KarolinaPomian Sep 3, 2025
f841edc
linter fix
KarolinaPomian Sep 3, 2025
6610cae
lint fix
KarolinaPomian Sep 3, 2025
ab6491f
linter fix
KarolinaPomian Sep 3, 2025
5eb697d
linter fix
KarolinaPomian Sep 4, 2025
a74ad7b
fix: update output path format in smoke_tests.yml and clean up parame…
KarolinaPomian Sep 4, 2025
488c561
fix: enhance report summary to include warnings and failures summary
KarolinaPomian Sep 4, 2025
936ef92
fix: update timeout values and improve logging in audio test scripts
KarolinaPomian Sep 4, 2025
4f856c5
lint fix
KarolinaPomian Sep 4, 2025
0eb8544
fix: update runner ID handling in smoke_tests.yml and correct return …
KarolinaPomian Sep 5, 2025
6455aa2
fix: standardize name formatting for runner ID preparation step in sm…
KarolinaPomian Sep 5, 2025
07a339e
fix: require runner input for bare-metal build and allow all workflow…
KarolinaPomian Sep 5, 2025
8c320e4
fix: update working directory references in smoke_tests.yml and remov…
KarolinaPomian Sep 5, 2025
2adc66b
fix: simplify branch reference handling in bare-metal build job
KarolinaPomian Sep 5, 2025
5a8963a
fix: correct indentation for branch input in bare-metal build job
KarolinaPomian Sep 5, 2025
80846d2
fix: enhance branch selection logic for bare-metal build job
KarolinaPomian Sep 5, 2025
82875c6
fix: update branch specifications for push and pull_request events in…
KarolinaPomian Sep 5, 2025
f5bcc1c
fix: standardize quotes for branch specifications in smoke_tests.yml
KarolinaPomian Sep 5, 2025
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
6 changes: 6 additions & 0 deletions .github/configs/actionlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
self-hosted-runner:
# Labels of self-hosted runner in array of strings.
labels:
- DPDK
- runner-1
- runner-4
188 changes: 188 additions & 0 deletions .github/workflows/bare-metal-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
name: Base Build

on:
workflow_call:
inputs:
branch:
required: false
type: string
default: "main"
description: "Branch to checkout"
tag:
required: false
type: string
description: "Tag to checkout"
runner:
required: true
type: string
description: "Runner to use for the build job"

env:
BUILD_TYPE: Release
BUILD_DIR: "${{ github.workspace }}/_build"
DEBIAN_FRONTEND: noninteractive
MTL_BUILD_DISABLE_PCAPNG: true
PREFIX_DIR: "${{ github.workspace }}/_install"

defaults:
run:
shell: bash

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

jobs:
build-baremetal-ubuntu:
runs-on: ${{ inputs.runner }}
timeout-minutes: 120
steps:
- name: "Harden Runner"
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
with:
egress-policy: audit
- name: "Fix permissions before checkout"
run: |
if [ -d "${{ github.workspace }}" ]; then
sudo chown -R "${USER}" "${{ github.workspace }}" || true
sudo chmod -R u+w "${{ github.workspace }}" || true
fi

- name: "Checkout repository"
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
ref: ${{ inputs.tag || inputs.branch }}

- name: "Install OS level dependencies"
run: eval 'source scripts/setup_build_env.sh && install_package_dependencies'

- name: "Check local dependencies build cache"
id: load-local-dependencies-cache
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: ${{ env.BUILD_DIR }}
key: ${{ runner.os }}-${{ hashFiles('versions.env') }}-${{ hashFiles('scripts/setup*.sh') }}

- name: "Download, unpack and patch build dependencies"
if: steps.load-local-dependencies-cache.outputs.cache-hit != 'true'
run: eval 'source scripts/setup_build_env.sh && get_download_unpack_dependencies'

- name: "Clone and patch ffmpeg 7.0"
if: steps.load-local-dependencies-cache.outputs.cache-hit != 'true'
run: |
ffmpeg-plugin/clone-and-patch-ffmpeg.sh "7.0"

- name: "Build and Install xdp and libbpf"
run: eval 'source scripts/setup_build_env.sh && lib_install_xdp_bpf_tools'

- name: "Build and Install libfabric"
run: eval 'source scripts/setup_build_env.sh && lib_install_fabrics'

- name: "Build and Install the DPDK (skipped: already installed on runner)"
if: always() && false # Always skip this step for now
run: |
echo "Skipping DPDK build and install as it is already installed on the machine."
# eval 'source scripts/setup_build_env.sh && lib_install_dpdk'

- name: "Check if DPDK version needs to be updated"
id: check_dpdk_version
run: |
if grep -q "DPDK_VER=25.03" "${{ github.workspace }}/versions.env" && \
grep -q "DPDK_VER=25.03" "${{ github.workspace }}/ffmpeg-plugin/versions.env" && \
grep -q "DPDK_VER=25.03" "${{ github.workspace }}/media-proxy/versions.env" && \
grep -q "DPDK_VER=25.03" "${{ github.workspace }}/sdk/versions.env"; then
echo "DPDK version is already set correctly."
echo "need_update=false" >> "$GITHUB_OUTPUT"
else
echo "DPDK version needs to be updated."
echo "need_update=true" >> "$GITHUB_OUTPUT"
fi

- name: "Switch DPDK version to currently used on the machine"
if: steps.check_dpdk_version.outputs.need_update == 'true'
run: |
sed -i 's|DPDK_VER=23.11|DPDK_VER=25.03|g' \
"${{ github.workspace }}/versions.env" \
"${{ github.workspace }}/ffmpeg-plugin/versions.env" \
"${{ github.workspace }}/media-proxy/versions.env" \
"${{ github.workspace }}/sdk/versions.env"

- name: "Check if MTL version needs to be updated"
id: check_mtl_version
run: |
if grep -q "MTL_VER=main" "${{ github.workspace }}/versions.env" && \
grep -q "MTL_VER=main" "${{ github.workspace }}/ffmpeg-plugin/versions.env" && \
grep -q "MTL_VER=main" "${{ github.workspace }}/media-proxy/versions.env" && \
grep -q "MTL_VER=main" "${{ github.workspace }}/sdk/versions.env"; then
echo "MTL version is already set correctly."
echo "need_update=false" >> "$GITHUB_OUTPUT"
else
echo "MTL version needs to be updated."
echo "need_update=true" >> "$GITHUB_OUTPUT"
fi

- name: "Switch MTL version to currently used on the machine"
if: steps.check_mtl_version.outputs.need_update == 'true'
run: |
sed -i 's|MTL_VER=v25.02|MTL_VER=main|g' \
"${{ github.workspace }}/versions.env" \
"${{ github.workspace }}/ffmpeg-plugin/versions.env" \
"${{ github.workspace }}/media-proxy/versions.env" \
"${{ github.workspace }}/sdk/versions.env"

- name: "Build and Install the MTL(skipped: already installed on runner)"
if: always() && false # Always skip this step for now
run: |
echo "Skipping MTL build and install as it is already installed on the machine."
# eval 'source scripts/setup_build_env.sh && lib_install_mtl'

- name: "Build and Install JPEG XS"
run: eval 'source scripts/setup_build_env.sh && lib_install_jpeg_xs'

- name: "Build and Install JPEG XS ffmpeg plugin"
run: eval 'source scripts/setup_build_env.sh && lib_install_mtl_jpeg_xs_plugin'

- name: "Build gRPC and dependencies"
run: eval 'source scripts/setup_build_env.sh && lib_install_grpc'

- name: "Build MCM SDK and Media Proxy"
run: eval 'source scripts/common.sh && ./build.sh "${PREFIX_DIR}"'

- name: "Build FFmpeg 7.0 with MCM plugin"
working-directory: ${{ github.workspace }}/ffmpeg-plugin
run: |
./configure-ffmpeg.sh "7.0" --prefix=${{ env.BUILD_DIR }}/ffmpeg-7-0 --disable-doc --disable-debug && \
./build-ffmpeg.sh "7.0"

- name: Install RxTxApp dependencies
run: sudo apt-get update && sudo apt-get install -y libjansson-dev
- name: "build RxTxApp"
working-directory: ${{ github.workspace }}/tests/tools/TestApp
run: |
rm -rf build && \
mkdir build && cd build && \
cmake .. && \
make
- name: "clone FFMPEG repository"
run: |
echo "Cloning FFMPEG repository"
- name: "clone MTL repository"
run: |
echo "Cloning MTL repository"
- name: "build MTL FFMPEG"
run: |
echo "Building MTL FFMPEG"

- name: "upload media-proxy and mcm binaries"
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: mcm-build
path: |
${{ env.BUILD_DIR }}/mcm/bin/media_proxy
${{ env.BUILD_DIR }}/mcm/bin/mesh-agent
${{ env.BUILD_DIR }}/mcm/lib/libmcm_dp.so.*
${{ env.BUILD_DIR }}/ffmpeg-7-0/ffmpeg
${{ env.BUILD_DIR }}/ffmpeg-7-0/lib/**
168 changes: 91 additions & 77 deletions .github/workflows/base_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,23 @@ name: Base Build

on:
push:
branches: [ "main" ]
branches: ["main"]
paths-ignore:
- "**/*.md"
- "tests/**"
- "docs/**"
- "LICENSE"
- ".gitignore"
- ".editorconfig"
pull_request:
branches: [ "main" ]
branches: ["main"]
paths-ignore:
- "**/*.md"
- "tests/**"
- "docs/**"
- "LICENSE"
- ".gitignore"
- ".editorconfig"
workflow_dispatch:

env:
Expand All @@ -27,80 +41,80 @@ concurrency:

jobs:
build-baremetal-ubuntu:
runs-on: 'ubuntu-22.04'
runs-on: "ubuntu-22.04"
timeout-minutes: 120
steps:
- name: 'Harden Runner'
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
with:
egress-policy: audit

- name: 'Checkout repository'
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: 'Install OS level dependencies'
run: eval 'source scripts/setup_build_env.sh && install_package_dependencies'

- name: 'Check local dependencies build cache'
id: load-local-dependencies-cache
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: ${{ env.BUILD_DIR }}
key: ${{ runner.os }}-${{ hashFiles('versions.env') }}-${{ hashFiles('scripts/setup*.sh') }}

- name: 'Download, unpack and patch build dependencies'
if: steps.load-local-dependencies-cache.outputs.cache-hit != 'true'
run: eval 'source scripts/setup_build_env.sh && get_download_unpack_dependencies'

- name: 'Clone and patch ffmpeg 6.1 and 7.0'
if: steps.load-local-dependencies-cache.outputs.cache-hit != 'true'
run: |
ffmpeg-plugin/clone-and-patch-ffmpeg.sh "6.1"
ffmpeg-plugin/clone-and-patch-ffmpeg.sh "7.0"

- name: 'Build and Install xdp and libbpf'
run: eval 'source scripts/setup_build_env.sh && lib_install_xdp_bpf_tools'

- name: 'Build and Install libfabric'
run: eval 'source scripts/setup_build_env.sh && lib_install_fabrics'

- name: 'Build and Install the DPDK'
run: eval 'source scripts/setup_build_env.sh && lib_install_dpdk'

- name: 'Build and Install the MTL'
run: eval 'source scripts/setup_build_env.sh && lib_install_mtl'

- name: 'Build and Install JPEG XS'
run: eval 'source scripts/setup_build_env.sh && lib_install_jpeg_xs'

- name: 'Build and Install JPEG XS ffmpeg plugin'
run: eval 'source scripts/setup_build_env.sh && lib_install_mtl_jpeg_xs_plugin'

- name: 'Build gRPC and dependencies'
run: eval 'source scripts/setup_build_env.sh && lib_install_grpc'

- name: 'Build MCM SDK and Media Proxy'
run: eval 'source scripts/common.sh && ./build.sh "${PREFIX_DIR}"'

- name: 'Build FFmpeg 6.1 with MCM plugin'
working-directory: ${{ github.workspace }}/ffmpeg-plugin
run: |
./configure-ffmpeg.sh "6.1" --disable-doc --disable-debug && \
./build-ffmpeg.sh "6.1"

- name: 'Build FFmpeg 7.0 with MCM plugin'
working-directory: ${{ github.workspace }}/ffmpeg-plugin
run: |
./configure-ffmpeg.sh "7.0" --disable-doc --disable-debug && \
./build-ffmpeg.sh "7.0"

- name: 'upload media-proxy and mcm binaries'
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: mcm-build
path: |
${{ env.BUILD_DIR }}/mcm/bin/media_proxy
${{ env.BUILD_DIR }}/mcm/bin/mesh-agent
${{ env.BUILD_DIR }}/mcm/lib/libmcm_dp.so.*
${{ env.BUILD_DIR }}/ffmpeg-6-1/ffmpeg
${{ env.BUILD_DIR }}/ffmpeg-7-0/ffmpeg
- name: "Harden Runner"
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
with:
egress-policy: audit

- name: "Checkout repository"
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: "Install OS level dependencies"
run: eval 'source scripts/setup_build_env.sh && install_package_dependencies'

- name: "Check local dependencies build cache"
id: load-local-dependencies-cache
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: ${{ env.BUILD_DIR }}
key: ${{ runner.os }}-${{ hashFiles('versions.env') }}-${{ hashFiles('scripts/setup*.sh') }}

- name: "Download, unpack and patch build dependencies"
if: steps.load-local-dependencies-cache.outputs.cache-hit != 'true'
run: eval 'source scripts/setup_build_env.sh && get_download_unpack_dependencies'

- name: "Clone and patch ffmpeg 6.1 and 7.0"
if: steps.load-local-dependencies-cache.outputs.cache-hit != 'true'
run: |
ffmpeg-plugin/clone-and-patch-ffmpeg.sh "6.1"
ffmpeg-plugin/clone-and-patch-ffmpeg.sh "7.0"

- name: "Build and Install xdp and libbpf"
run: eval 'source scripts/setup_build_env.sh && lib_install_xdp_bpf_tools'

- name: "Build and Install libfabric"
run: eval 'source scripts/setup_build_env.sh && lib_install_fabrics'

- name: "Build and Install the DPDK"
run: eval 'source scripts/setup_build_env.sh && lib_install_dpdk'

- name: "Build and Install the MTL"
run: eval 'source scripts/setup_build_env.sh && lib_install_mtl'

- name: "Build and Install JPEG XS"
run: eval 'source scripts/setup_build_env.sh && lib_install_jpeg_xs'

- name: "Build and Install JPEG XS ffmpeg plugin"
run: eval 'source scripts/setup_build_env.sh && lib_install_mtl_jpeg_xs_plugin'

- name: "Build gRPC and dependencies"
run: eval 'source scripts/setup_build_env.sh && lib_install_grpc'

- name: "Build MCM SDK and Media Proxy"
run: eval 'source scripts/common.sh && ./build.sh "${PREFIX_DIR}"'

- name: "Build FFmpeg 6.1 with MCM plugin"
working-directory: ${{ github.workspace }}/ffmpeg-plugin
run: |
./configure-ffmpeg.sh "6.1" --disable-doc --disable-debug && \
./build-ffmpeg.sh "6.1"

- name: "Build FFmpeg 7.0 with MCM plugin"
working-directory: ${{ github.workspace }}/ffmpeg-plugin
run: |
./configure-ffmpeg.sh "7.0" --disable-doc --disable-debug && \
./build-ffmpeg.sh "7.0"

- name: "upload media-proxy and mcm binaries"
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: mcm-build
path: |
${{ env.BUILD_DIR }}/mcm/bin/media_proxy
${{ env.BUILD_DIR }}/mcm/bin/mesh-agent
${{ env.BUILD_DIR }}/mcm/lib/libmcm_dp.so.*
${{ env.BUILD_DIR }}/ffmpeg-6-1/ffmpeg
${{ env.BUILD_DIR }}/ffmpeg-7-0/ffmpeg
Loading
Loading