Conversation
Co-authored-by: Copilot <copilot@github.com> Signed-off-by: HiFiPhile <admin@hifiphile.com>
There was a problem hiding this comment.
Pull request overview
Updates HIL CI to build/test against multiple HIL configuration files (e.g., TinyUSB + HFP) and adjusts the GitHub Actions workflow to generate and consume a merged HIL build matrix.
Changes:
- Extend
hil_ci_set_matrix.pyto accept multiple config JSON files, resolve paths robustly, and de-duplicate generated build args. - Update
build.ymlto generate a merged HIL matrix fromtest/hil/tinyusb.jsonandtest/hil/hfp.json. - Expand the HIL test job to run on different self-hosted runners depending on which HIL config is being tested, and rename the IAR-specific HFP job.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
test/hil/hil_ci_set_matrix.py |
Accepts multiple HIL config files and merges/dedupes build args per toolchain. |
.github/workflows/build.yml |
Generates merged HIL matrix; runs HIL tests across multiple self-hosted runners/configs; renames HFP IAR job. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| hil-tinyusb: | ||
| needs: hil-build | ||
| runs-on: [ self-hosted, X64, hathach, hardware-in-the-loop ] | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - runner: [ self-hosted, X64, hathach, hardware-in-the-loop ] | ||
| hil_json: test/hil/tinyusb.json | ||
| - runner: [ self-hosted, Linux, X64, hifiphile ] | ||
| hil_json: test/hil/hfp.json | ||
| runs-on: ${{ matrix.runner }} |
There was a problem hiding this comment.
This job is still named hil-tinyusb, but the matrix now includes test/hil/hfp.json and runs on the hifiphile runner too. Consider renaming the job to reflect its broader scope (or splitting into separate jobs) to avoid confusing workflow status and log navigation.
| # HIL matrix (merged from tinyusb + hifiphile configs) | ||
| HIL_MATRIX_JSON=$(python test/hil/hil_ci_set_matrix.py test/hil/tinyusb.json test/hil/hfp.json) | ||
| echo "hil_matrix=$HIL_MATRIX_JSON" |
There was a problem hiding this comment.
The HIL config paths are now hardcoded in multiple places (here and in the hil-tinyusb matrix). To reduce drift, consider defining the list once (e.g., via an env var or a single matrix definition) and reusing it for both matrix generation and job configuration.
| hil-tinyusb: | ||
| needs: hil-build | ||
| runs-on: [ self-hosted, X64, hathach, hardware-in-the-loop ] | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - runner: [ self-hosted, X64, hathach, hardware-in-the-loop ] | ||
| hil_json: test/hil/tinyusb.json | ||
| - runner: [ self-hosted, Linux, X64, hifiphile ] | ||
| hil_json: test/hil/hfp.json | ||
| runs-on: ${{ matrix.runner }} | ||
| env: | ||
| HIL_JSON: ${{ matrix.hil_json }} |
There was a problem hiding this comment.
hil-tinyusb runs on self-hosted runners and executes code checked out from pull_request events. Without a fork guard, this job can run untrusted fork PR code on your self-hosted infrastructure. Consider adding an if: condition matching hil-hfp-iar (skip when github.event.pull_request.head.repo.fork == true) or otherwise requiring trusted context/approval before using self-hosted runners.
Size Difference ReportBecause TinyUSB code size varies by port and configuration, the metrics below represent the averaged totals across all example builds. Note: If there is no change, only one value is shown. Changes >1% in sizeNo entries. Changes <1% in sizeNo entries. No changes
|
Co-authored-by: Copilot <copilot@github.com> Signed-off-by: HiFiPhile <admin@hifiphile.com>
|
@HiFiPhile it is probably hanged in one of the usb io. |
|

No description provided.