diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml new file mode 100644 index 000000000000..886b53cf2d7a --- /dev/null +++ b/.github/workflows/build_all.yml @@ -0,0 +1,64 @@ +--- + +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] + +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 + + - name: build + run: | + cd workspace + clang --verbose + set -x + sof/scripts/fuzz.sh -b -c stub_build_all_${{ matrix.IPC }}.conf -- "$cmake_arg" diff --git a/app/stub_build_all_ipc3.conf b/app/stub_build_all_ipc3.conf new file mode 100644 index 000000000000..c64fc4790da1 --- /dev/null +++ b/app/stub_build_all_ipc3.conf @@ -0,0 +1,14 @@ +CONFIG_COMP_STUBS=y +CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=y +CONFIG_COMP_TONE=y +CONFIG_COMP_CROSSOVER=y +CONFIG_COMP_DRC=y +CONFIG_COMP_MULTIBAND_DRC=y +CONFIG_COMP_SMART_AMP=y +CONFIG_PASSTHROUGH_CODEC=y +CONFIG_WAVES_CODEC=y +CONFIG_DTS_CODEC=y +CONFIG_COMP_IGO_NR=y +CONFIG_COMP_RTNR=y +CONFIG_COMP_SMART_AMP=y +CONFIG_MAXIM_DSM=y diff --git a/app/stub_build_all_ipc4.conf b/app/stub_build_all_ipc4.conf new file mode 100644 index 000000000000..f111940b17b6 --- /dev/null +++ b/app/stub_build_all_ipc4.conf @@ -0,0 +1,5 @@ +-DCONFIG_COMP_STUBS=y +-DCONFIG_COMP_ARIA=y +-DCONFIG_COMP_CHAIN_DMA=y +-DCONFIG_COMP_UP_DOWN_MIXER=y +-DCONFIG_IPC_MAJOR_4=y