-
Notifications
You must be signed in to change notification settings - Fork 1.5k
CI: Refactor the Build Rules based on Arch Labels #13858
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
Conversation
|
[Experimental Bot, please feedback here] The PR summary is well-written and informative, but there are a few missing pieces to fully meet the NuttX requirements. Here's a breakdown: Strengths:
Areas for Improvement:
Concise Feedback: This PR is well on its way to meeting the NuttX requirements. The summary is clear and informative, and the testing is comprehensive. However, it needs to explicitly address the impact on the build process and include snippets of relevant testing logs to be fully compliant. |
This PR continues to enhance the CI Workflow, to skip the unnecessary NuttX Builds. The changes in this PR will not take effect until the next PR, which will switch `build.yml` to use the rules in this PR. In this PR, we refactor the CI Build Rules into a separate Reusable Workflow `arch.yml`. The original rules were migrated to `arch.yml`: - We target only the Simple PRs: One Arch Label + One Size Label (e.g. "Arch: risc-v, Size: XS") - For "Arch: risc-v": Build `risc-v-01`, `risc-v-02` - For "Arch: xtensa": Build `xtensa-01`, `xtensa-02` - The above rules apply when the PR is Created or Modified - When the PR is Merged: All targets shall be built New and Updated Rules: - For "Arch: arm": Build `arm-01`, `arm-02`, ... - For "Arch: arm64": Build `other` - For "Arch: simulator": Build `sim-01`, `sim-02` - For "Arch: x86_64": Build `other` - For Simple PRs (One Arch Label + One Size Label): Skip the macOS and Windows builds (`macos`, `macos/sim-*`, `msys2`) since these builds are costly and slow - Except for "Arch: Simulator", which will enable the macOS Builds for `sim-01` and `sim-02` - If GitHub CLI Fails: Build all targets The code is explained here: apache#13775
This PR syncs the Build Rules from `nuttx` to `nuttx-apps` repo. The Build Rules were added to `nuttx` repo here: apache/nuttx#13858
This PR syncs the Build Rules from `nuttx` to `nuttx-apps` repo. The Build Rules were added to `nuttx` repo here: apache/nuttx#13858
Summary
This PR continues to enhance the CI Workflow, to skip the unnecessary NuttX Builds. The changes in this PR will not take effect until the next PR, which will switch
build.ymlto use the rules in this PR.In this PR, we refactor the CI Build Rules into a separate Reusable Workflow
arch.yml. The original rules were migrated toarch.yml:risc-v-01,risc-v-02xtensa-01,xtensa-02New and Updated Rules:
arm-01,arm-02, ...othersim-01,sim-02othermacos,macos/sim-*,msys2) since these builds are costly and slowsim-01andsim-02The code is explained here: #13775
Impact
The changes in this PR will not take effect until the next PR, which will switch
build.ymlto use the rules in this PR.Testing
We tested with the upcoming version of
build.yml. When we create a PR, the irrelevant builds are totally omitted. (Merge PR will compile all targets, same for Others)Previously the irrelevant builds were skipped in seconds. Now the irrelevant builds (e.g.
arm-01) are totally omitted for Simple PRs (e.g. "Arch: risc-v")