Skip to content

Commit 64651f9

Browse files
CYFS3Rbb666
authored andcommitted
ci: optimize membrowse target filtering
1 parent c374e52 commit 64651f9

3 files changed

Lines changed: 267 additions & 21 deletions

File tree

.github/membrowse-targets.json

Lines changed: 109 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66
"elf": "bsp/stm32/stm32f407-rt-spark/rt-thread.elf",
77
"ld": "bsp/stm32/stm32f407-rt-spark/board/linker_scripts/link.lds",
88
"map_file": "bsp/stm32/stm32f407-rt-spark/rt-thread.map",
9-
"linker_vars": ""
9+
"linker_vars": "",
10+
"watch_paths": [
11+
"bsp/stm32/stm32f407-rt-spark",
12+
"bsp/stm32/libraries",
13+
"bsp/stm32/tools"
14+
]
1015
},
1116
{
1217
"target_name": "stm32l475-atk-pandora-llvm",
@@ -16,7 +21,12 @@
1621
"elf": "bsp/stm32/stm32l475-atk-pandora/rt-thread.elf",
1722
"ld": "bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.lds",
1823
"map_file": "bsp/stm32/stm32l475-atk-pandora/rt-thread.map",
19-
"linker_vars": ""
24+
"linker_vars": "",
25+
"watch_paths": [
26+
"bsp/stm32/stm32l475-atk-pandora",
27+
"bsp/stm32/libraries",
28+
"bsp/stm32/tools"
29+
]
2030
},
2131
{
2232
"target_name": "raspberry-pico-rp2040",
@@ -25,7 +35,12 @@
2535
"elf": "bsp/raspberry-pico/RP2040/rtthread-pico.elf",
2636
"ld": "bsp/raspberry-pico/RP2040/link.ld",
2737
"map_file": "bsp/raspberry-pico/RP2040/rt-thread.map",
28-
"linker_vars": ""
38+
"linker_vars": "",
39+
"watch_paths": [
40+
"bsp/raspberry-pico/RP2040",
41+
"bsp/raspberry-pico/libraries",
42+
"bsp/raspberry-pico/tools"
43+
]
2944
},
3045
{
3146
"target_name": "at32f415-start",
@@ -34,7 +49,12 @@
3449
"elf": "bsp/at32/at32f415-start/rtthread.elf",
3550
"ld": "bsp/at32/at32f415-start/board/linker_scripts/link.lds",
3651
"map_file": "bsp/at32/at32f415-start/rt-thread.map",
37-
"linker_vars": ""
52+
"linker_vars": "",
53+
"watch_paths": [
54+
"bsp/at32/at32f415-start",
55+
"bsp/at32/libraries",
56+
"bsp/at32/tools"
57+
]
3858
},
3959
{
4060
"target_name": "gd32105r-start",
@@ -43,7 +63,12 @@
4363
"elf": "bsp/gd32/arm/gd32105r-start/rtthread.elf",
4464
"ld": "bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.ld",
4565
"map_file": "bsp/gd32/arm/gd32105r-start/rtthread.map",
46-
"linker_vars": ""
66+
"linker_vars": "",
67+
"watch_paths": [
68+
"bsp/gd32/arm/gd32105r-start",
69+
"bsp/gd32/arm/libraries",
70+
"bsp/gd32/arm/tools"
71+
]
4772
},
4873
{
4974
"target_name": "hc32f334",
@@ -52,7 +77,13 @@
5277
"elf": "bsp/hc32/ev_hc32f334_lqfp64/rtthread.elf",
5378
"ld": "bsp/hc32/ev_hc32f334_lqfp64/board/linker_scripts/link.ld",
5479
"map_file": "bsp/hc32/ev_hc32f334_lqfp64/rtthread.map",
55-
"linker_vars": ""
80+
"linker_vars": "",
81+
"watch_paths": [
82+
"bsp/hc32/ev_hc32f334_lqfp64",
83+
"bsp/hc32/libraries",
84+
"bsp/hc32/platform",
85+
"bsp/hc32/tools"
86+
]
5687
},
5788
{
5889
"target_name": "nxp-lpc1114",
@@ -61,7 +92,10 @@
6192
"elf": "bsp/nxp/lpc/lpc1114/rtthread-lpc1114.elf",
6293
"ld": "bsp/nxp/lpc/lpc1114/link.lds",
6394
"map_file": "bsp/nxp/lpc/lpc1114/rtthread.map",
64-
"linker_vars": ""
95+
"linker_vars": "",
96+
"watch_paths": [
97+
"bsp/nxp/lpc/lpc1114"
98+
]
6599
},
66100
{
67101
"target_name": "nordic-nrf51822",
@@ -70,7 +104,12 @@
70104
"elf": "bsp/nrf5x/nrf51822/rt-thread.elf",
71105
"ld": "bsp/nrf5x/nrf51822/board/linker_scripts/link.lds",
72106
"map_file": "bsp/nrf5x/nrf51822/rtthread.map",
73-
"linker_vars": ""
107+
"linker_vars": "",
108+
"watch_paths": [
109+
"bsp/nrf5x/nrf51822",
110+
"bsp/nrf5x/libraries",
111+
"bsp/nrf5x/tools"
112+
]
74113
},
75114
{
76115
"target_name": "nuvoton-m487",
@@ -79,7 +118,12 @@
79118
"elf": "bsp/nuvoton/numaker-iot-m487/rtthread.elf",
80119
"ld": "bsp/nuvoton/numaker-iot-m487/linking_scripts/m480_link.ld",
81120
"map_file": "bsp/nuvoton/numaker-iot-m487/rtthread.map",
82-
"linker_vars": ""
121+
"linker_vars": "",
122+
"watch_paths": [
123+
"bsp/nuvoton/numaker-iot-m487",
124+
"bsp/nuvoton/libraries",
125+
"bsp/nuvoton/tools"
126+
]
83127
},
84128
{
85129
"target_name": "infineon-psoc6",
@@ -88,7 +132,12 @@
88132
"elf": "bsp/Infineon/psoc6-cy8ckit-062s4/rt-thread.elf",
89133
"ld": "bsp/Infineon/psoc6-cy8ckit-062s4/board/linker_scripts/link.ld",
90134
"map_file": "bsp/Infineon/psoc6-cy8ckit-062s4/rtthread.map",
91-
"linker_vars": ""
135+
"linker_vars": "",
136+
"watch_paths": [
137+
"bsp/Infineon/psoc6-cy8ckit-062s4",
138+
"bsp/Infineon/libraries",
139+
"bsp/Infineon/tools"
140+
]
92141
},
93142
{
94143
"target_name": "renesas-ra2l1",
@@ -97,7 +146,12 @@
97146
"elf": "bsp/renesas/ra2l1-cpk/rtthread.elf",
98147
"ld": "bsp/renesas/ra2l1-cpk/script/fsp.ld",
99148
"map_file": "bsp/renesas/ra2l1-cpk/rtthread.map",
100-
"linker_vars": ""
149+
"linker_vars": "",
150+
"watch_paths": [
151+
"bsp/renesas/ra2l1-cpk",
152+
"bsp/renesas/libraries",
153+
"bsp/renesas/tools"
154+
]
101155
},
102156
{
103157
"target_name": "qemu-virt64-aarch64",
@@ -106,7 +160,10 @@
106160
"elf": "bsp/qemu-virt64-aarch64/rtthread.elf",
107161
"ld": "libcpu/aarch64/link.lds",
108162
"map_file": "bsp/qemu-virt64-aarch64/rtthread.map",
109-
"linker_vars": ""
163+
"linker_vars": "",
164+
"watch_paths": [
165+
"bsp/qemu-virt64-aarch64"
166+
]
110167
},
111168
{
112169
"target_name": "wch-ch32v208w-r0",
@@ -115,7 +172,12 @@
115172
"elf": "bsp/wch/risc-v/ch32v208w-r0/rtthread.elf",
116173
"ld": "bsp/wch/risc-v/ch32v208w-r0/board/linker_scripts/link.lds",
117174
"map_file": "bsp/wch/risc-v/ch32v208w-r0/rtthread.map",
118-
"linker_vars": ""
175+
"linker_vars": "",
176+
"watch_paths": [
177+
"bsp/wch/risc-v/ch32v208w-r0",
178+
"bsp/wch/risc-v/Libraries",
179+
"bsp/wch/risc-v/tools"
180+
]
119181
},
120182
{
121183
"target_name": "hpmicro-hpm5301evklite",
@@ -124,7 +186,12 @@
124186
"elf": "bsp/hpmicro/hpm5301evklite/rtthread.elf",
125187
"ld": "bsp/hpmicro/hpm5301evklite/board/linker_scripts/gcc/flash_rtt.ld",
126188
"map_file": "",
127-
"linker_vars": ""
189+
"linker_vars": "",
190+
"watch_paths": [
191+
"bsp/hpmicro/hpm5301evklite",
192+
"bsp/hpmicro/libraries",
193+
"bsp/hpmicro/tools"
194+
]
128195
},
129196
{
130197
"target_name": "xuantie-e901plus",
@@ -133,7 +200,12 @@
133200
"elf": "bsp/xuantie/smartl/e901plus/rtthread.elf",
134201
"ld": "bsp/xuantie/libraries/xuantie_libraries/chip_riscv_dummy/gcc_flash_smartl_lite.ld",
135202
"map_file": "bsp/xuantie/smartl/e901plus/rtthread.map",
136-
"linker_vars": ""
203+
"linker_vars": "",
204+
"watch_paths": [
205+
"bsp/xuantie/smartl/e901plus",
206+
"bsp/xuantie/libraries",
207+
"bsp/xuantie/tools"
208+
]
137209
},
138210
{
139211
"target_name": "esp32-c3",
@@ -142,7 +214,12 @@
142214
"elf": "bsp/ESP/ESP32_C3/rtthread.elf",
143215
"ld": "bsp/ESP/ESP32_C3/idf_port/ld/memory.ld bsp/ESP/ESP32_C3/idf_port/ld/sections.ld",
144216
"map_file": "bsp/ESP/ESP32_C3/rtthread.map",
145-
"linker_vars": ""
217+
"linker_vars": "",
218+
"watch_paths": [
219+
"bsp/ESP/ESP32_C3",
220+
"bsp/ESP/libraries",
221+
"bsp/ESP/tools"
222+
]
146223
},
147224
{
148225
"target_name": "k230",
@@ -151,7 +228,10 @@
151228
"elf": "bsp/k230/rtthread.elf",
152229
"ld": "bsp/k230/link.lds.generated",
153230
"map_file": "bsp/k230/rtthread.map",
154-
"linker_vars": ""
231+
"linker_vars": "",
232+
"watch_paths": [
233+
"bsp/k230"
234+
]
155235
},
156236
{
157237
"target_name": "loongson-ls1cdev",
@@ -160,7 +240,10 @@
160240
"elf": "bsp/loongson/ls1cdev/rtthread.elf",
161241
"ld": "bsp/loongson/ls1cdev/ls1c_ram.lds",
162242
"map_file": "bsp/loongson/ls1cdev/rtthread.map",
163-
"linker_vars": ""
243+
"linker_vars": "",
244+
"watch_paths": [
245+
"bsp/loongson/ls1cdev"
246+
]
164247
},
165248
{
166249
"target_name": "x86",
@@ -169,7 +252,10 @@
169252
"elf": "bsp/x86/rtthread.elf",
170253
"ld": "bsp/x86/x86_ram.lds",
171254
"map_file": "bsp/x86/rtthread.map",
172-
"linker_vars": ""
255+
"linker_vars": "",
256+
"watch_paths": [
257+
"bsp/x86"
258+
]
173259
},
174260
{
175261
"target_name": "simulator",
@@ -178,6 +264,9 @@
178264
"elf": "bsp/simulator/rtthread",
179265
"ld": "bsp/simulator/gcc_elf64.ld",
180266
"map_file": "bsp/simulator/rtthread-linux.map",
181-
"linker_vars": ""
267+
"linker_vars": "",
268+
"watch_paths": [
269+
"bsp/simulator"
270+
]
182271
}
183272
]

.github/workflows/membrowse-report.yml

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,35 @@ name: MemBrowse Memory Report
22

33
on:
44
pull_request:
5+
paths:
6+
- '.github/membrowse-targets.json'
7+
- '.github/workflows/membrowse-report.yml'
8+
- 'Kconfig'
9+
- 'bsp/**'
10+
- 'components/**'
11+
- 'include/**'
12+
- 'libcpu/**'
13+
- 'src/**'
14+
- 'tools/**'
15+
- '!**/README*'
16+
- '!**/readme*'
17+
- '!bsp/**/docs/**'
518
push:
619
branches:
720
- master
21+
paths:
22+
- '.github/membrowse-targets.json'
23+
- '.github/workflows/membrowse-report.yml'
24+
- 'Kconfig'
25+
- 'bsp/**'
26+
- 'components/**'
27+
- 'include/**'
28+
- 'libcpu/**'
29+
- 'src/**'
30+
- 'tools/**'
31+
- '!**/README*'
32+
- '!**/readme*'
33+
- '!bsp/**/docs/**'
834

935
concurrency:
1036
group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.sha || github.ref }}
@@ -15,16 +41,31 @@ jobs:
1541
runs-on: ubuntu-22.04
1642
outputs:
1743
matrix: ${{ steps.set-matrix.outputs.matrix }}
44+
target_count: ${{ steps.set-matrix.outputs.target_count }}
1845
steps:
1946
- name: Checkout repository
2047
uses: actions/checkout@v5
48+
with:
49+
fetch-depth: 0
50+
51+
- name: Collect changed files
52+
run: |
53+
if [ "${{ github.event_name }}" = "pull_request" ]; then
54+
git diff --name-only origin/${{ github.base_ref }}...HEAD > changed_files.txt
55+
elif [ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]; then
56+
git diff --name-only ${{ github.event.before }} ${{ github.sha }} > changed_files.txt
57+
else
58+
git diff --name-only origin/${{ github.event.repository.default_branch }}...HEAD > changed_files.txt
59+
fi
60+
cat changed_files.txt
2161
2262
- name: Load target matrix
2363
id: set-matrix
24-
run: echo "matrix=$(jq -c '.' .github/membrowse-targets.json)" >> $GITHUB_OUTPUT
64+
run: python3 tools/ci/membrowse_filter_targets.py --targets .github/membrowse-targets.json --changed-files changed_files.txt
2565

2666
analyze:
2767
needs: load-targets
68+
if: ${{ needs.load-targets.outputs.target_count != '0' }}
2869
runs-on: ubuntu-22.04
2970
strategy:
3071
fail-fast: false

0 commit comments

Comments
 (0)