Hacker News new | ask | show | jobs
by cdata 435 days ago
I wonder if you could pair this with nix e.g.,:

    - shell: nix develop --command {0}
      run: ...
2 comments

In my experience, the default VM size is so slow, you probably don't want Nix on a workflow that doesn't already take minutes.

Even with a binary cache (we used R2), installing Lix, Devbox and some common tools costs us 2 1/2 minutes. Just evaluating the derivation takes ~20-30 seconds.

You can use a self-hosted runner with an image that has anything pre-loaded.
Is there a way to cache the derivation evaluation?
You can cache arbitrary directories in github actions, but the nix package cache is enormous and probably bigger than GH's cache system will allow. Restoring multi-gig caches is also not instant, though it still beats doing everything from scratch. Might be more feasible to bake the cache into a container image instead. I think any nix enthusiast is still likely to go for self-hosted runners though.
The default cache action also has issued with anything that isn't owned by the runner user, and caches are per-repository, so you can't just have one cache like you do for binary caches.
Yes, we do this, although you need to do `nix develop --command bash -- {0}` to make it behave as a shell.