1name: Compile and Run 2on: 3 workflow_dispatch: 4 pull_request: 5 branches: [main] 6 push: 7 branches: [main] 8 9permissions: 10 actions: read 11 security-events: write 12 13jobs: 14 CI_c_test_run: 15 strategy: 16 fail-fast: false 17 matrix: 18 compiler: [AC6, CLANG, GCC] 19 runs-on: ubuntu-latest 20 21 steps: 22 - name: Checkout 23 uses: actions/checkout@v4 24 25 - name: Setup Python 3.10 26 uses: actions/setup-python@v5 27 with: 28 python-version: '3.10' 29 cache: 'pip' 30 cache-dependency-path: Testing/requirements.txt 31 32 - name: Install system packages 33 run: | 34 sudo add-apt-repository ppa:deadsnakes/ppa 35 sudo apt-get install libpython3.9 libtinfo5 36 37 - name: Cache packs 38 uses: actions/cache@v4 39 with: 40 key: packs-cmsis-dsp 41 restore-keys: | 42 packs- 43 path: /home/runner/.cache/arm/packs 44 45 - name: Activate vcpkg 46 uses: ARM-software/cmsis-actions/vcpkg@v1 47 with: 48 cache: "-cmsis_dsp_vcpkg" 49 50 - name: Activate Arm tool license 51 uses: ARM-software/cmsis-actions/armlm@v1 52 53 - name: Prepare framework 54 run: | 55 cd Testing 56 echo "Create missing folders" 57 mkdir FullBenchmark 58 mkdir Output 59 mkdir GeneratedInclude 60 mkdir GeneratedSource 61 mkdir GeneratedIncludeBench 62 mkdir GeneratedSourceBench 63 64 echo "Install missing python packages" 65 pip install -r requirements.txt 66 67 echo "Preprocess test description" 68 python preprocess.py -f desc.txt -o Output.pickle 69 python preprocess.py -f desc_f16.txt -o Output_f16.pickle 70 71 echo "Generate missing CPP headers" 72 python processTests.py -gen . -p Patterns -d Parameters -f Output.pickle -e 73 python processTests.py -gen . -p Patterns -d Parameters -f Output_f16.pickle -e 74 75 cd cmsis_build 76 77 echo "Load missing pack" 78 csolution list packs -s test.csolution.yml -m > required_packs.txt 79 80 cat required_packs.txt 81 cpackget add -a -f required_packs.txt 82 83 - name: Execute 84 run: | 85 cd Testing/cmsis_build 86 echo "Running tests" 87 88 python runall.py -s -g ${{ matrix.compiler }} -avh $AVH_FVP_PLUGINS/../bin 89 90 - name: Upload test report 91 uses: actions/upload-artifact@v4 92 with: 93 name: test-report_${{ matrix.compiler }} 94 path: Testing/cmsis_build/summary_${{ matrix.compiler }}.html 95 96 97 - name: Check error 98 run: | 99 cd Testing/cmsis_build 100 101 echo "Checking output..." 102 test "$(grep "Error" summary_${{ matrix.compiler }}.html | wc -l)" -eq 0 103