Skip to content
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: Disable all jobs for macOS and Windows #14377

Merged
merged 1 commit into from
Oct 18, 2024

Conversation

lupyuen
Copy link
Member

@lupyuen lupyuen commented Oct 17, 2024

Summary

This PR disables all CI Jobs for macOS and Windows, to reduce GitHub Cost. Details here: #14376

Impact

CI Jobs for macOS and Windows will no longer run, until we find a way to manage their costs.

Testing

We tested the skipping of macOS and Windows jobs: https://github.com/lupyuen5/label-nuttx/actions/runs/11379543159

@github-actions github-actions bot added Area: CI Size: S The size of the change in this PR is small labels Oct 17, 2024
@lupyuen lupyuen linked an issue Oct 17, 2024 that may be closed by this pull request
@nuttxpr
Copy link

nuttxpr commented Oct 17, 2024

[Experimental Bot, please feedback here]

Yes, this PR seems to meet the NuttX requirements.

Here's a breakdown:

  • Summary: Clear explanation of the change (disabling CI for macOS/Windows) and its purpose (cost reduction). The related NuttX issue is linked.
  • Impact: The impact on various aspects is adequately addressed, stating that only CI for specific operating systems is affected.
  • Testing: Testing is described with a link to the results, demonstrating the effectiveness of the change.

Overall, the PR provides sufficient information for reviewers to understand the change, its impact, and the testing conducted.

@xiaoxiang781216
Copy link
Contributor

@lupyuen can we reduce the board on Linux host to keep macOS/Windows? it's very easy to break these host if without these basic coverage.

@lupyuen
Copy link
Member Author

lupyuen commented Oct 17, 2024

@xiaoxiang781216 I suggest that we monitor the GitHub Cost after disabling macOS and Windows Jobs. It's possible that macOS and Windows Jobs are contributing a huge part of the cost. We could re-enable and simplify them after monitoring.

@jerpelea I hope you are agreeable to this.

@yamt
Copy link
Contributor

yamt commented Oct 17, 2024

@xiaoxiang781216 I suggest that we monitor the GitHub Cost after disabling macOS and Windows Jobs. It's possible that macOS and Windows Jobs are contributing a huge part of the cost. We could re-enable and simplify them after monitoring.

why don't you disable all tests, including linux? :-)

i feel macOS/Windows jobs are more important to have on the CI than linux ones
because many of developers don't test them locally.

my impression is we simply build too many configs, regardless of platforms.

lupyuen added a commit to lupyuen2/wip-nuttx that referenced this pull request Oct 17, 2024
When we submit or update a Complex PR that affects All Architectures (Arm, RISC-V, Xtensa, etc): CI Workflow shall run only half the jobs. Previously CI Workflow will run `arm-01` to `arm-14`, now we will run only `arm-01` to `arm-07`.

When the Complex PR is Merged: CI Workflow will still run all jobs `arm-01` to `arm-14`

Simple PRs with One Single Arch / Board will build the same way as before: `arm-01` to `arm-14`

This is explained here: apache#14376

Note that this version of `arch.yml` has diverged from `nuttx-apps`, since we are unable to merge apache#14377
lupyuen added a commit to lupyuen2/wip-nuttx-apps that referenced this pull request Oct 17, 2024
When we submit or update a Complex PR that affects All Architectures (Arm, RISC-V, Xtensa, etc): CI Workflow shall run only half the jobs. Previously CI Workflow will run `arm-01` to `arm-14`, now we will run only `arm-01` to `arm-07`.

When the Complex PR is Merged: CI Workflow will still run all jobs `arm-01` to `arm-14`

Simple PRs with One Single Arch / Board will build the same way as before: `arm-01` to `arm-14`

This is explained here: apache/nuttx#14376

Note that this version of `arch.yml` has diverged from `nuttx` repo, since we are unable to merge apache/nuttx#14377
@cederom
Copy link
Contributor

cederom commented Oct 17, 2024

Do we know how much actually Windoze and macOS cost per month? Maybe we can disable macOS for not just to save the CI?

macOS is Unix so close to Linux builds but 10x the price.

Windoze is another story and true not many people use / test it so would be good to keep the test builds?

Someone from Apache would be good to have in all this conversations..

@lupyuen
Copy link
Member Author

lupyuen commented Oct 17, 2024

@cederom The official pricing is here: https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions#minute-multipliers

macOS is 10x more expensive than Linux. There's actually a high possibility that we are overrunning our GitHub Costs mainly due to macOS. And ASF might have ignored this, because no other ASF Project is using macOS like us.

@lupyuen
Copy link
Member Author

lupyuen commented Oct 17, 2024

I have a suggestion: I have a super powerful Mac Mini at home that's underutilised, I would be happy to run NuttX CI once every day.

There's a problem though: The macOS CI Scripts were created for the obsolete Intel Macs, they don't run so well on my M2 Pro Mac Mini. The scripts need to be updated.

(Also it sounds very odd: Why are we running NuttX CI on an obsolete Intel Mac hosted at GitHub?)

@cederom
Copy link
Contributor

cederom commented Oct 17, 2024

Yes I have also asked Apache Infra do they know how we can introduce external distributed build farms to the testing process. Maybe we don't need to reinvent the wheel just use some existing project that could allow us to test build/run on various boards that we have at hand at home/work/lab :-)

@lupyuen
Copy link
Member Author

lupyuen commented Oct 17, 2024

I believe Self-Hosted GitHub Runners is their preferred solution: https://cwiki.apache.org/confluence/display/INFRA/GitHub+self-hosted+runners

But like the article says: Server Security will require special expertise to setup and maintain.

cederom pushed a commit to apache/nuttx-apps that referenced this pull request Oct 18, 2024
When we submit or update a Complex PR that affects All Architectures (Arm, RISC-V, Xtensa, etc): CI Workflow shall run only half the jobs. Previously CI Workflow will run `arm-01` to `arm-14`, now we will run only `arm-01` to `arm-07`.

When the Complex PR is Merged: CI Workflow will still run all jobs `arm-01` to `arm-14`

Simple PRs with One Single Arch / Board will build the same way as before: `arm-01` to `arm-14`

This is explained here: apache/nuttx#14376

Note that this version of `arch.yml` has diverged from `nuttx` repo, since we are unable to merge apache/nuttx#14377
cederom pushed a commit that referenced this pull request Oct 18, 2024
When we submit or update a Complex PR that affects All Architectures (Arm, RISC-V, Xtensa, etc): CI Workflow shall run only half the jobs. Previously CI Workflow will run `arm-01` to `arm-14`, now we will run only `arm-01` to `arm-07`.

When the Complex PR is Merged: CI Workflow will still run all jobs `arm-01` to `arm-14`

Simple PRs with One Single Arch / Board will build the same way as before: `arm-01` to `arm-14`

This is explained here: #14376

Note that this version of `arch.yml` has diverged from `nuttx-apps`, since we are unable to merge #14377
This PR disables all CI Jobs for macOS and Windows, to reduce GitHub Cost. Details here: apache#14376
@lupyuen
Copy link
Member Author

lupyuen commented Oct 18, 2024

I have just rebased to master branch, to keep arch.yml in sync with #14386. Thanks!

@cederom cederom merged commit e75ac11 into apache:master Oct 18, 2024
17 of 31 checks passed
@yamt
Copy link
Contributor

yamt commented Oct 18, 2024

There's a problem though: The macOS CI Scripts were created for the obsolete Intel Macs, they don't run so well on my M2 Pro Mac Mini. The scripts need to be updated.

(Also it sounds very odd: Why are we running NuttX CI on an obsolete Intel Mac hosted at GitHub?)

intel mac is not completely obsolete. apple still supports them. (and i'm using them. :-)

also, some of tested code are host arch dependent. (eg. low-level logic in sim)

@lupyuen
Copy link
Member Author

lupyuen commented Oct 18, 2024

Refurbished Intel Mac Mini costs USD 340, maybe I should buy one and run it at home for CI Tests? I'm now running CI Tests on a refurbished Ubuntu PC, seems OK so far.

@cederom
Copy link
Contributor

cederom commented Oct 18, 2024

The best build HW for macOS is MacStudio, but not the cheapest one, more expensive than MacMini, cheaper than MacBookPro, more powerful than both of them.. 4x faster than my PC but still 5x more expensive :D

I was forced to buy MacStudio to get latest macOS and XCode as my old Intel based MacBookPro got no more updates. But Open-Source builds also work on that old MacBookPro with no problem :-)

Another solution may be Hackintosh ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: CI Size: S The size of the change in this PR is small
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[URGENT] Reducing our usage of GitHub Runners
5 participants