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