Skip to content

Commit 13a5011

Browse files
Add GitHub Action workflow for RTOS2 Validation
1 parent e6f25c0 commit 13a5011

1 file changed

Lines changed: 154 additions & 0 deletions

File tree

.github/workflows/cmsis_rv2.yaml

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
2+
name: RTOS2 Validation
3+
4+
on:
5+
workflow_dispatch:
6+
pull_request:
7+
push:
8+
branches: [main]
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
env:
15+
CMSIS_PACK_ROOT: ${{ github.workspace }}/.packs
16+
ARM_UBL_ACTIVATION_CODE: ${{ secrets.ARM_UBL_ACTIVATION_CODE }}
17+
18+
jobs:
19+
build-and-run:
20+
strategy:
21+
fail-fast: true
22+
matrix:
23+
compiler: [AC6, GCC, Clang]
24+
25+
runs-on: ubuntu-latest
26+
27+
steps:
28+
- name: Checkout CMSIS-FreeRTOS
29+
uses: actions/checkout@v4
30+
with:
31+
path: CMSIS-FreeRTOS
32+
fetch-depth: 0
33+
34+
- name: Checkout CMSIS_6
35+
uses: actions/checkout@v4
36+
with:
37+
repository: ARM-software/CMSIS_6
38+
path: CMSIS_6
39+
40+
- name: Checkout CMSIS-RTOS2_Validation
41+
uses: actions/checkout@v4
42+
with:
43+
repository: ARM-software/CMSIS-RTOS2_Validation
44+
path: CMSIS-RTOS2_Validation
45+
46+
- name: Checkout Cortex_DFP
47+
uses: actions/checkout@v4
48+
with:
49+
repository: ARM-software/Cortex_DFP
50+
path: Cortex_DFP
51+
52+
- name: Setup Python 3.10
53+
uses: actions/setup-python@v5
54+
with:
55+
python-version: '3.10'
56+
57+
- name: Install system packages
58+
run: |
59+
sudo add-apt-repository ppa:deadsnakes/ppa
60+
sudo apt-get install libpython3.9 libtinfo5
61+
62+
- name: Python requirements
63+
run: |
64+
pip install -r ./CMSIS-RTOS2_Validation/Project/requirements.txt
65+
66+
- name: Cache packs
67+
uses: actions/cache@v4
68+
with:
69+
key: packs-${{ github.run_id }}-${{ matrix.compiler }}
70+
restore-keys: |
71+
packs-
72+
path: /home/runner/.cache/arm/packs
73+
74+
- name: Setup vcpkg environment
75+
uses: JonatanAntoni/actions/vcpkg@main
76+
with:
77+
config: ./CMSIS-RTOS2_Validation/Project/vcpkg-configuration.json
78+
cache: "-${{ matrix.compiler }}"
79+
80+
- name: Activate Arm tool license
81+
run: |
82+
if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then
83+
armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }}
84+
else
85+
armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0
86+
fi
87+
88+
- name: Register local packs
89+
run: |
90+
cpackget init https://www.keil.com/pack/index.pidx
91+
cpackget rm ARM::CMSIS ARM::CMSIS-FreeRTOS ARM::Cortex_DFP || echo "Ok"
92+
93+
cpackget add ./CMSIS_6/ARM.CMSIS.pdsc
94+
cpackget add ./CMSIS-FreeRTOS/ARM.CMSIS-FreeRTOS.pdsc
95+
cpackget add ./Cortex_DFP/ARM.Cortex_DFP.pdsc
96+
cpackget add -an ARM.CMSIS-RTX
97+
98+
- uses: ammaraskar/gcc-problem-matcher@master
99+
if: matrix.compiler == 'GCC'
100+
101+
- name: Build
102+
working-directory: ./CMSIS-RTOS2_Validation/Project
103+
run: |
104+
echo "Build test projects ..."
105+
./build.py --verbose -r FreeRTOS -c ${{ matrix.compiler }} build || echo "::warning::=== Some configurations failed to build! ==="
106+
107+
- name: Execute
108+
working-directory: ./CMSIS-RTOS2_Validation/Project
109+
run: |
110+
echo "Run test projects ..."
111+
./build.py --verbose -r FreeRTOS -c ${{ matrix.compiler }} run || echo "::warning::==== Some configurations failed to run! ==="
112+
113+
- name: Deactivate Arm tool license
114+
if: always()
115+
working-directory: ./CMSIS-RTOS2_Validation/Project
116+
run: |
117+
if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then
118+
armlm deactivate --code ${{ env.ARM_UBL_ACTIVATION_CODE }}
119+
else
120+
armlm deactivate --product KEMDK-COM0
121+
fi
122+
123+
- name: Upload Test Reports
124+
if: ${{ !cancelled() }}
125+
uses: actions/upload-artifact@v4
126+
with:
127+
name: test-results-${{ matrix.compiler }}
128+
path: ./CMSIS-RTOS2_Validation/Project/*.junit
129+
130+
131+
publish-test-results:
132+
needs: [build-and-run]
133+
runs-on: ubuntu-22.04
134+
if: github.event_name == 'pull_request'
135+
136+
env:
137+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138+
139+
steps:
140+
- name: Download Test Reports
141+
uses: actions/download-artifact@v4
142+
with:
143+
path: artifacts
144+
145+
- name: Publish Test Results
146+
if: ${{ env.GITHUB_TOKEN }}
147+
uses: EnricoMi/publish-unit-test-result-action@v2
148+
with:
149+
commit: ${{ github.event.workflow_run.head_sha }}
150+
event_file: ${{ github.event_path }}
151+
report_individual_runs: true
152+
event_name: ${{ github.event.workflow_run.event }}
153+
files: "artifacts/**/*.junit"
154+

0 commit comments

Comments
 (0)