-
Notifications
You must be signed in to change notification settings - Fork 321
69 lines (56 loc) · 2.11 KB
/
build_all.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
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@v4
with:
path: ./workspace/sof
filter: 'tree:0'
- 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