Skip to content

Commit 48e35fb

Browse files
author
FasterEdge
committed
ci: PlatformIO 构建跳过纯头文件工程(无源码不构建)
1 parent f06c944 commit 48e35fb

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

‎.github/workflows/platformio.yml‎

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# FasterEdge 开源项目 - Github: https://github.com/FasterEdge - Gitee: https://gitee.com/FasterEdge
2-
# MCU 固件 CI: PlatformIO 编译仓库内所有 PlatformIO 工程。
2+
# MCU 固件 CI: PlatformIO 编译仓库内所有含源码的 PlatformIO 工程
3+
# (纯头文件适配工程如 platformio_ide/ 无 src, 自动跳过; 避免空工程构建失败)。
34
name: 'PlatformIO 构建'
45

56
on:
@@ -20,13 +21,22 @@ jobs:
2021
python-version: '3.12'
2122
- name: '安装 PlatformIO'
2223
run: pip install -q platformio
23-
- name: '构建所有 PlatformIO 工程'
24+
- name: '构建所有 PlatformIO 工程(无源码跳过)'
2425
run: |
2526
set -e
2627
found=0
28+
skipped=0
2729
for ini in $(find . -name platformio.ini -not -path './.git/*'); do
28-
found=1
29-
echo "===== pio run: $(dirname "$ini") ====="
30-
pio run -d "$(dirname "$ini")"
30+
d="$(dirname "$ini")"
31+
src=$(find "$d" -maxdepth 3 \( -type d -name src -o -name '*.c' -o -name '*.cpp' -o -name '*.ino' -o -name '*.asm' \) -not -path '*/.git/*' | head -1)
32+
if [ -z "$src" ]; then
33+
skipped=$((skipped+1))
34+
echo "跳过(无源码): $d"
35+
continue
36+
fi
37+
found=$((found+1))
38+
echo "===== pio run: $d ====="
39+
pio run -d "$d"
3140
done
32-
if [ "$found" -eq 0 ]; then echo "未找到 platformio.ini"; exit 1; fi
41+
echo "编译工程数=$found 跳过=$skipped"
42+
[ "$found" -eq 0 ] && [ "$skipped" -eq 0 ] && { echo "未找到 platformio.ini"; exit 1; }

0 commit comments

Comments
 (0)