Skip to content

Daily Build

Daily Build #3

Workflow file for this run

#
# BSD 3-Clause License
# Copyright (C) 2026 Intel Corporation
# SPDX-License-Identifier: BSD-3-Clause
#
name: Daily Build
on:
schedule:
# Run at 10:00 PM UTC, Monday through Friday
- cron: '0 22 * * 1-5'
push:
branches:
- main
workflow_dispatch:
jobs:
build:
name: Daily Build
runs-on: self-hosted
steps:
- name: Clean up previous run
run: |
echo "Cleaning up previous run artifacts"
find "${{ github.workspace }}" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
fetch-depth: 0
- name: Verify dependencies
run: |
PKGS="meson ninja-build pkg-config build-essential libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libavdevice-dev"
MISSING=""
for pkg in $PKGS; do
dpkg -s "$pkg" &>/dev/null || MISSING="$MISSING $pkg"
done
if [ -n "$MISSING" ]; then
echo "ERROR: The following packages are not installed on this self-hosted runner:$MISSING"
echo "Please install them on the runner with: sudo apt-get install -y $MISSING"
exit 1
else
echo "All dependencies already installed."
fi
- name: Set up MTL environment
run: |
if pkg-config --exists mtl 2>/dev/null; then
echo "MTL already discoverable via pkg-config"
exit 0
fi
MTL_PC=$(find /usr /home /opt -name "mtl.pc" 2>/dev/null | head -1)
if [ -z "$MTL_PC" ]; then
echo "ERROR: MTL pkg-config file not found under /usr, /home, or /opt."
echo "Please ensure Media Transport Library is built and installed on the runner."
exit 1
fi
MTL_PC_DIR=$(dirname "$MTL_PC")
echo "Found MTL pkgconfig at: $MTL_PC_DIR"
echo "PKG_CONFIG_PATH=${MTL_PC_DIR}:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV"
- name: Build dvledtx
uses: ./.github/actions/build-dvledtx
- name: Run unit tests
uses: ./.github/actions/run-unit-tests
- name: Static analysis
uses: ./.github/actions/static-analysis
- name: Binary size and symbol check
run: |
REPORT_DIR="$GITHUB_WORKSPACE/reports"
mkdir -p "$REPORT_DIR"
echo "=== size ===" | tee "$REPORT_DIR/binary-report.txt"
size ./build/dvledtx | tee -a "$REPORT_DIR/binary-report.txt"
echo "" | tee -a "$REPORT_DIR/binary-report.txt"
echo "=== readelf: shared library dependencies ===" | tee -a "$REPORT_DIR/binary-report.txt"
readelf -d ./build/dvledtx | grep NEEDED | tee -a "$REPORT_DIR/binary-report.txt"
echo "" | tee -a "$REPORT_DIR/binary-report.txt"
echo "=== nm: undefined external symbols ===" | tee -a "$REPORT_DIR/binary-report.txt"
nm -u ./build/dvledtx | tee -a "$REPORT_DIR/binary-report.txt"
echo "Binary report saved to $REPORT_DIR/binary-report.txt"
- name: Smoke test
uses: ./.github/actions/smoke-test
- name: Upload daily build reports
uses: actions/upload-artifact@v4
if: always()
with:
name: dvledtx-build-artifacts-${{ github.run_id }}
path: |
${{ github.workspace }}/reports/
${{ github.workspace }}/test-reports/
retention-days: 30