Skip to content

Simple dependency-free ALSA test rig for PCM capture analysis. #1814

Simple dependency-free ALSA test rig for PCM capture analysis.

Simple dependency-free ALSA test rig for PCM capture analysis. #1814

Workflow file for this run

---
name: Build test all components
# 'workflow_dispatch' allows running this workflow manually from the
# 'Actions' tab
# yamllint disable-line rule:truthy
on: [pull_request, workflow_dispatch, workflow_call]
jobs:
stub-build:
runs-on: ubuntu-22.04
strategy:
matrix:
# Keep these names short due to questionable Github UI choices
IPC: [ipc3, ipc4]
steps:
- name: add i386 arch
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
- name: apt-get install i386 packages
run: |
# We don't know why Github requires us to explicit all these i386
# dependencies. On a vanilla Ubuntu 22.04 the last apt-get is
# enough.
# Also, it does not seem possible to download Github images for
# local testing which means trial and error for this requires a
# force-push every time: excruciatingly slow!
sudo apt-get -y install \
libgcc-s1:i386 libc6-dev:i386 libstdc++6:i386 \
libgomp1:i386 libitm1:i386 libatomic1:i386 \
libasan8:i386 libubsan1:i386 libquadmath0:i386 \
sudo apt-get -y install \
libc6-dev-i386 libstdc++-12-dev:i386
- name: apt-get install build tools
run:
sudo apt-get -y install
clang llvm ninja-build device-tree-compiler python3-pyelftools
- uses: actions/checkout@v3
with:
path: ./workspace/sof
- name: west update
run: |
cd workspace/sof
pip3 install west
west init -l
west update --narrow --fetch-opt=--filter=tree:0
# This is not fuzzing. Fuzzing just happens to require stubbing
# which provides be a great solution to compile-check many CONFIG_*
# at once.
- name: stubs build
run: |
cd workspace
clang --verbose
set -x
sof/scripts/fuzz.sh -b -- -DEXTRA_CFLAGS='-Werror' -DEXTRA_CXXFLAGS='-Werror' \
-DOVERLAY_CONFIG=stub_build_all_${{ matrix.IPC }}.conf