mirror of https://github.com/thesofproject/sof.git
69 lines
2.1 KiB
YAML
69 lines
2.1 KiB
YAML
---
|
|
|
|
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
|