-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
CI: Split the Build Jobs for Arm64 and x86_64 #14282
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github-actions
bot
added
Area: Tooling
Area: CI
Size: S
The size of the change in this PR is small
labels
Oct 15, 2024
[Experimental Bot, please feedback here] The PR summary and testing information you provided indicate that the PR meets the NuttX requirements. Here's a breakdown: Summary:
Impact:
Testing:
Verdict: The PR satisfies the NuttX requirements with clear explanations, thorough testing, and addresses a relevant issue. |
This PR creates the new CI Build Jobs `arm64-01` and `x86_64-01`. The new jobs will split and offload the Arm64 and x86_64 Build Targets from `other`. This will reduce our usage of GitHub Runners, to comply with the ASF Policy for GitHub Actions. (Recently we see more PRs for Arm64 and x86_64) Before the Split: Simple PRs (One Arch and/or One Board) for Arm64 and x86_64 require almost 1 hour for CI Build - `other` (57 mins): AVR, SPARC, x86, PinePhone, QEMU Arm64, QEMU x86_64 After the Split: Simple PRs for Arm64 and x86_64 will complete under 30 mins - `other` (24 mins): AVR, SPARC, x86 - `arm64-01` (29 mins): PinePhone, QEMU Arm64 - `x86_64-01` (9 mins): QEMU x86_64 To skip more unnecessary builds: Our Build Rules `arch.yml` shall ignore the label "Area: Documentation", so that a Simple PR + Docs is still a Simple PR. Previously we experienced longer CI Build Times, just because we added docs to our Simple PR. (Now our PR shall be built exactly like a Simple PR) The updated CI code is explained here: apache#13775
xiaoxiang781216
approved these changes
Oct 20, 2024
lupyuen
added a commit
to lupyuen2/wip-nuttx-apps
that referenced
this pull request
Oct 20, 2024
This PR syncs apache/nuttx#14282 from `nuttx` repo to `nuttx-apps`.
xiaoxiang781216
pushed a commit
to apache/nuttx-apps
that referenced
this pull request
Oct 20, 2024
This PR syncs apache/nuttx#14282 from `nuttx` repo to `nuttx-apps`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR creates the new CI Build Jobs
arm64-01
andx86_64-01
. The new jobs will split and offload the Arm64 and x86_64 Build Targets fromother
. This will reduce our usage of GitHub Runners, to comply with the ASF Policy for GitHub Actions. (Recently we see more PRs for Arm64 and x86_64)Before the Split: Simple PRs (One Arch and/or One Board) for Arm64 and x86_64 require almost 1 hour for CI Build
other
(57 mins): AVR, SPARC, x86, PinePhone, QEMU Arm64, QEMU x86_64After the Split: Simple PRs for Arm64 and x86_64 will complete under 30 mins
other
(24 mins): AVR, SPARC, x86arm64-01
(29 mins): PinePhone, QEMU Arm64x86_64-01
(9 mins): QEMU x86_64To skip more unnecessary builds: Our Build Rules
arch.yml
shall ignore the label "Area: Documentation", so that a Simple PR + Docs is still a Simple PR. Previously we experienced longer CI Build Times, just because we added docs to our Simple PR. (Now our PR shall be built exactly like a Simple PR)This update will help us comply with the ASF Policy for GitHub Actions, since we need to drastically reduce our usage of GitHub Runners: #14376. The updated CI code is explained here: #13775
Impact
With this PR, Build Jobs for Arm64 / x86_64 / Other will finish earlier:
Before the Split: Arm64 and x86_64 Build Jobs take up to 57 mins (
other
) to complete.After the Split: Arm64 and x86_64 Build Jobs will take at most 29 mins (
arm64-01
) to complete.Simple PRs labeled "Arch: arm64" and/or "Board: arm64" will now build
arm64-01
. (Instead ofother
)Simple PRs labeled "Arch: x86_64" and/or "Board: x86_64" will now build
x86_64-01
. (Instead ofother
)Simple PRs with Docs will also build faster. (Simple PRs are limited to only One Arch and/or One Board)
The Updated CI Workflow shall be synced to
nuttx-apps
repo in the next PR.Testing
We verified that the Build Jobs for Arm64, x86_64 and Other are executed successfully with the Updated CI Workflow: https://github.com/lupyuen5/label-nuttx/actions/runs/11338591308
Before the Split
After the Split
Simple PR for Arm64 / x86_64: We tested by creating Simple PRs for Arm64 and x86_64
arm64-01
arm64-01
arm64-01
x86_64-01
x86_64-01
x86_64-01
Simple PR with Documentation: We tested by creating Simple PRs that have docs
arm-01
toarm-14
arm-01
toarm-14
arm-01
toarm-14
Regression Test: We tested by creating Simple PRs and Non-Simple PRs
arm-01
toarm-14
arm-01
toarm-14
arm-01
toarm-14
risc-v-01
torisc-v-06
sim-01
tosim-02
xtensa-01
toxtensa-02