MLEK audio build and execution test #4
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
| # SPDX-FileCopyrightText: Copyright 2022-2025 Arm Limited and/or its | |
| # affiliates <open-source-office@arm.com> | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| name: MLEK audio build and execution test | |
| on: | |
| workflow_dispatch: | |
| #pull_request: | |
| # branches: [main] | |
| #push: | |
| # branches: [main] | |
| #schedule: | |
| # - cron: '00 20 * * 6' | |
| jobs: | |
| CI: | |
| strategy: | |
| matrix: | |
| context: [ | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-300, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-300, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-300, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-300, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-300-U55, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-300-U55, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-300-U55, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-300-U55, model: FVP_Corstone_SSE-300_Ethos-U55, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-300-U65, model: FVP_Corstone_SSE-300_Ethos-U65, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-300-U65, model: FVP_Corstone_SSE-300_Ethos-U65, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-300-U65, model: FVP_Corstone_SSE-300_Ethos-U65, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-300-U65, model: FVP_Corstone_SSE-300_Ethos-U65, fvp_dir: Corstone-300, args: '-C mps3_board.v_path=./board/Corstone-300/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-310, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-310, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-310, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-310, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-310-U55, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-310-U55, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-310-U55, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-310-U55, model: FVP_Corstone_SSE-310, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-310-U65, model: FVP_Corstone_SSE-310_Ethos-U65, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-310-U65, model: FVP_Corstone_SSE-310_Ethos-U65, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-310-U65, model: FVP_Corstone_SSE-310_Ethos-U65, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-310-U65, model: FVP_Corstone_SSE-310_Ethos-U65, fvp_dir: Corstone-310, args: '-C mps3_board.v_path=./board/Corstone-310/vsi/python/', mps: mps3}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-315, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-315, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-315, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-315, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-315-U65, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-315-U65, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-315-U65, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-315-U65, model: FVP_Corstone_SSE-315, fvp_dir: Corstone-315, args: '-C mps4_board.v_path=./board/Corstone-315/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-320, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-320, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-320, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-320, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Release-Live_Stream, target_type: AVH-SSE-320-U85, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| # {proj: kws, build_type: Debug-Live_Stream, target_type: AVH-SSE-320-U85, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Release-Data_Array, target_type: AVH-SSE-320-U85, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| {proj: kws, build_type: Debug-Data_Array, target_type: AVH-SSE-320-U85, model: FVP_Corstone_SSE-320, fvp_dir: Corstone-320, args: '-C mps4_board.v_path=./board/Corstone-320/vsi/python/', mps: mps4}, | |
| ] | |
| fail-fast: false | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Get the vcpkg-configuration.json file | |
| uses: actions/checkout@v4 | |
| with: | |
| sparse-checkout: .ci | |
| - name: Restore Latest Pack Build from Cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ github.workspace }}/output | |
| key: latest-cmsis-mlek-pack | |
| - name: Extract pack content | |
| run: | | |
| unzip ./output/ARM.cmsis-mlek.*.pack -d ./ARM/cmsis-mlek/ | |
| - name: Install tools | |
| uses: ARM-software/cmsis-actions/vcpkg@v1 | |
| with: | |
| config: ".ci/vcpkg-configuration.json" | |
| - name: Activate Arm tool license | |
| uses: ARM-software/cmsis-actions/armlm@v1 | |
| - name: Initialize CMSIS pack root folder | |
| run: | | |
| cpackget init https://www.keil.com/pack/index.pidx | |
| cpackget update-index | |
| - name: Install python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.9' | |
| - name: Install opencv-python | |
| run: | | |
| pip install opencv-python | |
| pip list | |
| pip show opencv-python | |
| python -c "import cv2; print('Installed cv2 version: ', cv2.__version__)" | |
| - name: Cache downloaded packs | |
| if: always() | |
| uses: actions/cache@v4 | |
| with: | |
| key: cmsis-mlek-download | |
| path: /home/runner/.cache/arm/packs/.Download | |
| - name: AC6-Build-Test 4 context ${{matrix.context.proj}}.${{matrix.context.build_type}}+${{matrix.context.target_type}} | |
| working-directory: ./ARM/cmsis-mlek/template/audio | |
| run: | | |
| cbuild mlek_audio.csolution.yml --update-rte --packs --no-schema-check \ | |
| --context ${{matrix.context.proj}}.${{matrix.context.build_type}}+${{matrix.context.target_type}} \ | |
| --toolchain AC6 --rebuild | |
| - name: AC6-Execution-Test 4 context ${{matrix.context.proj}}.${{matrix.context.build_type}}+${{matrix.context.target_type}} | |
| working-directory: ./ARM/cmsis-mlek/ | |
| run: | | |
| ${{ matrix.context.model }} \ | |
| -a ./template/audio/out/${{matrix.context.proj}}/${{matrix.context.target_type}}/${{matrix.context.build_type}}/${{matrix.context.proj}}.axf \ | |
| -f ./template/audio/board/${{matrix.context.fvp_dir}}/fvp_config.txt \ | |
| ${{matrix.context.args}} \ | |
| -C ${{matrix.context.mps}}_board.telnetterminal0.start_telnet=0 \ | |
| -C ${{matrix.context.mps}}_board.uart0.out_file=fvp_stdout_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log \ | |
| --simlimit 30 | |
| - name: Show and check FVP UART output for fvp_stdout_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log | |
| working-directory: ./ARM/cmsis-mlek/ | |
| run: | | |
| echo "Show FVP UART output..." | |
| cat fvp_stdout_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log | |
| echo "Checking FVP UART output..." | |
| test "$(grep "FAIL: " fvp_stdout_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log | wc -l)" -eq 0 | |
| - name: Upload FVP UART output for ${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fvp_stdout_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log | |
| path: ./ARM/cmsis-mlek/fvp_stdout_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.context.model}}.log |