Daily Build #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # 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 |