summaryrefslogtreecommitdiff
path: root/.github/workflows/pr_comment.yml
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2026-07-30 02:29:32 +0700
committerGitHub <[email protected]>2026-07-30 02:29:32 +0700
commiteef5af86aa26fe3d72e41156a586a6ed3ffce9f8 (patch)
treefa5ebe3a8d46738338eaee2d4a80717a7a10f464 /.github/workflows/pr_comment.yml
parent5d8afbb23248e9d1d5d1fdf434c9c58cc54ba5b7 (diff)
hil, ci: scope HIL builds and tests to the boards a PR affects (#3797)
hil, ci: scope HIL builds and tests to the boards a PR affects Add test/hil/hil_select.py, a stdlib-only selector that maps a PR diff to the rig boards, tests and BSP families a change can affect, and wire it into CI so pull requests build and run only those. A port change picks its families' boards, a class change picks the examples enabling that class, and device/host changes prune the other role. Anything unclassified — infra, an unmapped port, a selector error — falls back to the full matrix, and push/schedule runs are untouched. Move the shared example lists to hil_examples.py; 54 hardware-free tests cover the rules.
Diffstat (limited to '.github/workflows/pr_comment.yml')
-rw-r--r--.github/workflows/pr_comment.yml9
1 files changed, 9 insertions, 0 deletions
diff --git a/.github/workflows/pr_comment.yml b/.github/workflows/pr_comment.yml
index 4d50817b4..868e56405 100644
--- a/.github/workflows/pr_comment.yml
+++ b/.github/workflows/pr_comment.yml
@@ -101,7 +101,16 @@ jobs:
shopt -s nullglob
dirs=(hil-reports/hil-report-*)
if [ ${#dirs[@]} -eq 0 ]; then
+ # No rig produced a report: PR selection matched no board anywhere, or the
+ # HIL jobs did not run at all. Post it rather than exiting, so a table from
+ # an earlier push is replaced instead of being left to look current.
echo "No HIL reports found"
+ {
+ echo "## Hardware-in-the-loop (HIL) Test Report"
+ echo
+ echo "_No HIL run for this push (no affected boards, or hardware testing did not run)._"
+ } > hil_combined.md
+ echo "found=true" >> "$GITHUB_OUTPUT"
exit 0
fi
{