Skip to content

MLEK audio build and execution test #4

MLEK audio build and execution test

MLEK audio build and execution test #4

Workflow file for this run

# 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