-
Notifications
You must be signed in to change notification settings - Fork 1
160 lines (129 loc) · 5.41 KB
/
tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
name: Tests
on: [push, pull_request]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
RetrieveTargetsMatrix:
uses: ./.github/workflows/create-matrix.yml
Test-fetch:
runs-on: ubuntu-latest
needs: RetrieveTargetsMatrix
strategy:
matrix: ${{ fromJSON(needs.RetrieveTargetsMatrix.outputs.matrix) }}
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/installToolchain
- name: Create build directory for tests/fetch
run: cmake -E make_directory ${{ runner.workspace }}/tests/fetch/build
- name: Configure tests/fetch
shell: bash
working-directory: ${{ runner.workspace }}/tests/fetch/build
run: cmake -DTEST_FAMILIES=${{ matrix.family }} $GITHUB_WORKSPACE/tests/fetch/
- name: Create HAL config files from templates
shell: bash
working-directory: ${{ runner.workspace }}/tests/fetch/build
run: |
TEMPLATES=($(find _deps -name "*_template.h"))
for template in ${TEMPLATES[@]}; do
#get rid off "_template" in file name
DEST=$(basename ${template} | sed -rn "s@([^/]*)(_template)(\.h)@\1\3@p")
cp ${template} ${DEST}
done
if: ${{ matrix.family != 'MP2'}}
- name: Build tests/fetch
working-directory: ${{ runner.workspace }}/tests/fetch/build
shell: bash
run: cmake --build . --config $BUILD_TYPE
Test-CMSIS:
runs-on: ubuntu-latest
needs: RetrieveTargetsMatrix
strategy:
matrix: ${{ fromJSON(needs.RetrieveTargetsMatrix.outputs.matrix) }}
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/installToolchain
- name: Create build directory for tests/cmsis
run: cmake -E make_directory ${{ runner.workspace }}/tests/cmsis/build
if: ${{ matrix.family != 'MP1' && matrix.family != 'MP2'}}
- name: Configure tests/cmsis
shell: bash
working-directory: ${{ runner.workspace }}/tests/cmsis/build
run: cmake -DTEST_FAMILIES=${{ matrix.family }} -DFETCH_ST_SOURCES=TRUE $GITHUB_WORKSPACE/tests/cmsis/
if: ${{ matrix.family != 'MP1' && matrix.family != 'MP2'}}
- name: Build tests/cmsis
working-directory: ${{ runner.workspace }}/tests/cmsis/build
shell: bash
run: cmake --build . --config $BUILD_TYPE
if: ${{ matrix.family != 'MP1' && matrix.family != 'MP2'}}
Test-HAL:
runs-on: ubuntu-latest
needs: RetrieveTargetsMatrix
strategy:
matrix: ${{ fromJSON(needs.RetrieveTargetsMatrix.outputs.matrix) }}
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/installToolchain
- name: Create build directory for tests/hal
run: cmake -E make_directory ${{ runner.workspace }}/tests/hal/build
- name: Configure tests/hal
shell: bash
working-directory: ${{ runner.workspace }}/tests/hal/build
run: cmake -DTEST_FAMILIES=${{ matrix.family }} -DFETCH_ST_SOURCES=TRUE $GITHUB_WORKSPACE/tests/hal/
- name: Create HAL config files from templates
shell: bash
working-directory: ${{ runner.workspace }}/tests/hal/build
run: |
TEMPLATES=($(find _deps -name "*_template.h"))
for template in ${TEMPLATES[@]}; do
#get rid off "_template" in file name
DEST=$(basename ${template} | sed -rn "s@([^/]*)(_template)(\.h)@\1\3@p")
cp ${template} ${DEST}
done
if: ${{ matrix.family != 'MP2'}}
- name: Build tests/hal
working-directory: ${{ runner.workspace }}/tests/hal/build
shell: bash
run: cmake --build . --config $BUILD_TYPE
Test-FreeRTOS:
runs-on: ubuntu-latest
needs: RetrieveTargetsMatrix
strategy:
matrix: ${{ fromJSON(needs.RetrieveTargetsMatrix.outputs.matrix) }}
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/installToolchain
- name: Create build directory for tests/freertos
run: cmake -E make_directory ${{ runner.workspace }}/tests/freertos/build
- name: Check is Family has FreeRTOS Port
id: check_freertos_port
run: |
has_port=$(sed -nr "s@set\(STM32${{ matrix.family }}(_\w+)?_FREERTOS_PORT\s+(.*)\)@Found@p" cmake/stm32/*)
if [[ -n ${has_port} ]]; then
echo "FOUND=TRUE" >> $GITHUB_OUTPUT
fi
- name: Configure tests/freertos
if: ${{ steps.check_freertos_port.outputs.FOUND }}
shell: bash
working-directory: ${{ runner.workspace }}/tests/freertos/build
run: cmake -DFAMILY=${{ matrix.family }} -DFETCH_ST_SOURCES=TRUE $GITHUB_WORKSPACE/tests/freertos/
- name: Create HAL config files from templates
if: ${{ steps.check_freertos_port.outputs.FOUND && matrix.family != 'MP2' }}
shell: bash
working-directory: ${{ runner.workspace }}/tests/freertos/build
run: |
TEMPLATES=($(find _deps/*/Drivers/STM32${{ matrix.family }}*_HAL_Driver/Inc -name "*_template.h"))
for template in ${TEMPLATES[@]}; do
#get rid off "_template" in file name
DEST=$(basename ${template} | sed -rn "s@([^/]*)(_template)(\.h)@\1\3@p")
cp ${template} ${DEST}
done
- name: Build tests/freertos
if: ${{ steps.check_freertos_port.outputs.FOUND }}
working-directory: ${{ runner.workspace }}/tests/freertos/build
shell: bash
run: cmake --build . --config $BUILD_TYPE