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

GitHub Actions to replace grahamofborg-eval #99722

Closed
domenkozar opened this issue Oct 6, 2020 · 13 comments
Closed

GitHub Actions to replace grahamofborg-eval #99722

domenkozar opened this issue Oct 6, 2020 · 13 comments
Labels
0.kind: enhancement Add something new 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions

Comments

@domenkozar
Copy link
Member

domenkozar commented Oct 6, 2020

For all the eval jobs running on ofborg we can easily port to GitHub actions and maintain them here.

After that we just build if there are less packages than let's say 500.

I do not have time to do this, but maybe someone is interested to help out.

@06kellyjac
Copy link
Member

I'm interested but I'm not familiar with the inner workings of ofborg. The readme does look very useful though and the rust is nice and readable.
https://github.com/NixOS/ofborg#how-does-ofborg-call-nix-instantiate

What's the vision here?
Can the code in ofborg to pull out package names and safely evaluate (etc) be used as is or can it be pulled out to be used in an action?
https://github.com/NixOS/ofborg/blob/released/ofborg/src/nix.rs#L170-L187
Or would a bunch of this need re-implementing?

Also what's the plan for the chat commands e.g. @ofborg eval?

@domenkozar
Copy link
Member Author

Can the code in ofborg to pull out package names and safely evaluate (etc) be used as is or can it be pulled out to be used in an action?

I'm not familiar with the code, so it can be factored out or rewritten, whatever is easiest.

Also what's the plan for the chat commands e.g. @ofborg eval?

I don't see a need for those (yet?), we can just do these things given it's a trusted environment.

@Mic92
Copy link
Member

Mic92 commented Oct 7, 2020

chat commands are easy to implement with github actions as well. I think there was a PR to add /build somewhere by @kloenk I don't think we can port eval jobs to github without having our own runners as it takes a lot of memory for evaluation.

@domenkozar
Copy link
Member Author

How much is a lot? :)

@Mic92
Copy link
Member

Mic92 commented Oct 12, 2020

How much is a lot? :)

Our spot evaluator are equipped with 120GB RAM: https://monitoring.nix.ci/d/000000002/ofborg?orgId=1&refresh=10s&fullscreen&panelId=2

@domenkozar
Copy link
Member Author

Looking at those graphs evaluations can take 15GB, while github actions runners have 7GB of memory.

I see a couple of ways out though:

  • we could use swap since it's SSD
  • it's on github roadmap to be able to pick machine size
  • we could evaluate parts of nixpkgs/NixOS in different jobs

@FRidh
Copy link
Member

FRidh commented Nov 28, 2020

I've described more actions that we could use/need in #104594.

@Mic92
Copy link
Member

Mic92 commented Nov 28, 2020

Looking at those graphs evaluations can take 15GB, while github actions runners have 7GB of memory.

I see a couple of ways out though:

* we could use swap since it's SSD

* it's on github roadmap to be able to pick machine size

* we could evaluate parts of nixpkgs/NixOS in different jobs

It might be possible to evaluate different prefix ranges on different nodes. I evaluated this option with nixpkgs-review. You need evaluate significantly less than half of all packages so to reduce the memory usage half.

@FRidh
Copy link
Member

FRidh commented Nov 28, 2020

It might be possible to evaluate different prefix ranges on different nodes. I evaluated this option with nixpkgs-review. You need evaluate significantly less than half of all packages so to reduce the memory usage half.

Evaluating NixOS and the various Nixpkgs package sets sequentially could be an option?

@Mic92
Copy link
Member

Mic92 commented Nov 28, 2020

It might be possible to evaluate different prefix ranges on different nodes. I evaluated this option with nixpkgs-review. You need evaluate significantly less than half of all packages so to reduce the memory usage half.

Evaluating NixOS and the various Nixpkgs package sets sequentially could be an option?

Evaluating all packages sequentially would be quite slow. Partitioning is faster.

@stale
Copy link

stale bot commented Jun 3, 2021

I marked this as stale due to inactivity. → More info

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 3, 2021
@tomodachi94 tomodachi94 added the 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions label Nov 4, 2024
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Nov 4, 2024
@tomodachi94 tomodachi94 added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Nov 4, 2024
@nixos-discourse
Copy link

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/infrastructure-announcement-the-future-of-ofborg-your-help-needed/56025/9

@wolfgangwalther
Copy link
Contributor

This was done in #356023 and follow ups. If anything remains to be done, it would be tracked in #355847.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.kind: enhancement Add something new 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions
Projects
None yet
Development

No branches or pull requests

7 participants