-
Notifications
You must be signed in to change notification settings - Fork 7.7k
ci: Enhance boards test validation #11888
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
👋 Hello P-R-O-C-H-Y, we appreciate your contribution to this project! 📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more. 🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project. Click to see more instructions ...
Review and merge process you can expect ...
|
@me-no-dev @lucasssvaz PR is ready for your review :) |
Description of Change
This pull request improves the board validation process in the CI workflows by introducing a reusable validation script and enhancing the accuracy of board detection. The main changes focus on centralizing board validation logic, ensuring only actual boards are processed, and updating workflow steps to use the new script. PR includes also fixes for boards that are not passing the Rules 2-6.
Board validation improvements:
Added
.github/scripts/validate_board.sh
and updated bothboards.yml
andallboards.yml
workflows to use this script for validating board definitions, replacing inline validation logic. [1] [2]6 Validation Rules for ESP32 Boards:
build.board must be uppercase letters, numbers, and underscores only
Example: ESP32_DEV ✅ | esp32-dev ❌
Must have upload.flags and upload.extra_flags defined
All partition schemes must fit within board's flash size
Checks scheme names, descriptions, and upload limits
No duplicate VID/PID entries
VID and PID indices must match (vid.0 ↔ pid.0)
Prevents any board from using the reserved ESP32 family ID (0x303a/0x1001)
Must have all 6 debug levels: none, error, warn, info, debug, verbose
Each with correct code_debug values (0-5)
Looks for the same property defined twice for one board (catching copy-paste errors)
Shows exactly where the duplicates are in the file
Board detection enhancements:
.github/scripts/find_new_boards.sh
to use anexcluded_entries
array for filtering out non-board entries, making board detection more robust and maintainable.Workflow updates:
allboards.yml
, added steps to make the validation script executable and validate each board in the chunk, reporting failures and stopping the workflow if any board fails validation.boards.yml
, replaced the previous uppercase check forbuild.board
with the new validation script for consistency and improved reliability.Board Definition Updates (
boards.txt
):default_8MB
,fatflash
, andapp3M_fat9M_16MB
) from various boards to streamline the available choices and possibly reflect hardware or support changes. [1] [2] [3] [4] [5] [6] [7]build.partitions
andupload.maximum_size
entries forapp3M_fat9M_16MB
onesp32s3-octal
.um_tinyc6
from 4MB to 8MB, reflecting a hardware change.S_ODI_Ultra
.These changes collectively improve the reliability of board validation in CI and keep the board definitions up-to-date with current hardware and support requirements.
Test Scenarios
Tested locally
Related links