name: Compile and Run on: workflow_dispatch: pull_request: branches: [main] push: branches: [main] permissions: actions: read security-events: write jobs: CI_c_test_run: strategy: fail-fast: false matrix: compiler: [AC6, CLANG, GCC] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Python 3.10 uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' cache-dependency-path: Testing/requirements.txt - name: Install system packages run: | sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get install libpython3.9 libtinfo5 - name: Cache packs uses: actions/cache@v4 with: key: packs-cmsis-dsp restore-keys: | packs- path: /home/runner/.cache/arm/packs - name: Activate vcpkg uses: ARM-software/cmsis-actions/vcpkg@v1 with: cache: "-cmsis_dsp_vcpkg" - name: Activate Arm tool license uses: ARM-software/cmsis-actions/armlm@v1 - name: Prepare framework run: | cd Testing echo "Create missing folders" mkdir FullBenchmark mkdir Output mkdir GeneratedInclude mkdir GeneratedSource mkdir GeneratedIncludeBench mkdir GeneratedSourceBench echo "Install missing python packages" pip install -r requirements.txt echo "Preprocess test description" python preprocess.py -f desc.txt -o Output.pickle python preprocess.py -f desc_f16.txt -o Output_f16.pickle echo "Generate missing CPP headers" python processTests.py -gen . -p Patterns -d Parameters -f Output.pickle -e python processTests.py -gen . -p Patterns -d Parameters -f Output_f16.pickle -e cd cmsis_build echo "Load missing pack" csolution list packs -s test.csolution.yml -m > required_packs.txt cat required_packs.txt cpackget add -a -f required_packs.txt - name: Execute run: | cd Testing/cmsis_build echo "Running tests" python runall.py -s -g ${{ matrix.compiler }} -avh $AVH_FVP_PLUGINS/../bin - name: Upload test report uses: actions/upload-artifact@v4 with: name: test-report_${{ matrix.compiler }} path: Testing/cmsis_build/summary_${{ matrix.compiler }}.html - name: Check error run: | cd Testing/cmsis_build echo "Checking output..." test "$(grep "Error" summary_${{ matrix.compiler }}.html | wc -l)" -eq 0