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 Hosting Research Proposal #16

Open
oursland opened this issue Sep 24, 2024 · 9 comments
Open

CI Hosting Research Proposal #16

oursland opened this issue Sep 24, 2024 · 9 comments
Labels
funded The FPA voted to fund this proposal

Comments

@oursland
Copy link

Proposal description

This proposal is to investigate the options for hosting paid CI GitHub runners. The current CI runners are the GitHub provided free runners that are relatively slow and concurrency limited. Paid runners and self-hosted runners either in the cloud or on-prem provide a means to perform quicker builds and concurrent builds.

Deliverables

The deliverable is a report indicating the costs and benefits of each approach:

  • GitHub Paid Runners
  • Self-Hosted in the Cloud
    • Microsoft Azure
    • Google Cloud Services
    • Amazon AWS
    • Others?
  • Self-Hosted On-Prem

Consideration shall be given to the different build configurations including:

  • Ubuntu 20.04
  • Ubuntu 22.04 (conda)
  • macOS (conda)
  • Windows
  • Windows (conda)

Timeline

This report will take approximately two weeks to compile.

Risks and mitigation

The deliverable is a report and has minimal risk to the FreeCAD project.

Compensation

The compensation for the report will be $500.

About you

  • Name: Jacob (Jackson) Oursland
  • Username: oursland
  • Relevant Experience: I have 17 years of professional software development, including several start-up projects involving establishing the initial development infrastructure. In these projects I was also responsible for scaling up CI systems as demand needed. In one instance, CI run time went from over 2 hours on paid GitLab runners to under 1 hour on self-hosted runners on commodity Intel NUCs, then to 15 minutes on self-hosted runners on a purpose-built PC.
@yorikvanhavre
Copy link
Member

That proposal is very good and useful. Would you be interested in (maybe in a future proposal, or maybe an extension to this one) also researching a bit about mechanisms we could adopt to limit the carbon emissions that FreeCAD generates through CI?

I'm thinking roughly, how we could limit ourselves the use of CI without sacrificing too much of the convenience, maybe some CI solutions are also "greener" than others, etc.

Feel free to discard this if you aren't interested, we'll probably attack that anyway at some point, but maybe it can plug in this proposal nicely...

@oursland
Copy link
Author

It is reasonable to discuss the carbon impact of each option.

The most minimizing of carbon footprint is to continue to operate the free runners. Data centers work quite hard to minimize unnecessary power utilization often opting for on-prem renewable sources from solar and wind, and shared runners ensure that the computers are being used in the most efficient manner possible.

Given my past experience, the strong recommend would be to purchase purpose-specific computers which maximizes efficiency between CPU, RAM, and storage in ways that datacenters fail to achieve. Unfortunately, this is the least efficient system.

Actual numbers on this will take a while to compile, once approved, but it all involves a trade-off of what the project needs and what it is willing to compromise on.

@shaise
Copy link
Collaborator

shaise commented Sep 24, 2024

@yorikvanhavre ,
I have noticed that on any branch I make in my own freecad fork, on any WIP commit I make, the CI system is triggered. I think this is a real waste of carbon footprint. Perhaps this should be changed such that only if I create a PR, this will trigger the CI.
I also wonder, does anyone who forks freecad, even if not a contributor, get the CI running for each commit he/she makes?

shai

@oursland
Copy link
Author

In general, WIP commits and draft PRs will still want to be checked via the CI to ensure proper compilation and test passing. If desired, you can disable the CI on push and pull_request triggers with commit messages.

CI will trigger for users that have enabled GitHub Actions on their fork.

@shaise
Copy link
Collaborator

shaise commented Sep 24, 2024

@oursland , Good to know. Thanks!

@chennes chennes added the under committee review Currently being reviewed by the FPA Grant Review Committee label Sep 24, 2024
@chennes chennes added voting in progress The grant is currently being voted on by FPA members and removed under committee review Currently being reviewed by the FPA Grant Review Committee labels Oct 3, 2024
@chennes
Copy link
Member

chennes commented Oct 3, 2024

Thanks again for the grant application, @oursland -- the FPA's grant review committee has forwarded its approval of this grant on to the FPA members, who will now vote on the allocation. This process typically cases 1-2 weeks: I will keep you updated, and will forward any questions or concerns from FPA members to you here.

@chennes
Copy link
Member

chennes commented Oct 4, 2024

@oursland thank you again for your proposal: the FPA has voted to fund this grant. When you are ready for payment, please coordinate with [email protected] and [email protected] to arrange the details.

@chennes chennes added funded The FPA voted to fund this proposal and removed voting in progress The grant is currently being voted on by FPA members labels Oct 4, 2024
@Reqrefusion
Copy link
Member

@oursland, maybe this question may seem a bit ridiculous since I don't have full knowledge about FreeCAD's current servers. Does it make it possible or easier to host some helpful things like LibreTranslate, Elasticsearch etc.?

@oursland
Copy link
Author

@Reqrefusion this proposal is limited to the CI system. At current the CI runners are on shared servers provided by GitHub, which have substantial limitations.

Other servers such as the forum and wiki are currently managed by @kkremitzki, I believe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
funded The FPA voted to fund this proposal
Projects
None yet
Development

No branches or pull requests

5 participants