Julian K. Arni
jkarni.bsky.social
Julian K. Arni
@jkarni.bsky.social
On it
November 5, 2025 at 12:35 PM
Thanks a lot for having had me on the podcast!
March 27, 2025 at 6:34 PM
Here's the blog post with the announcement: garnix.io/blog/garnix-...
Garnix Blog: garnix modules
How CI can be faster, more reliable, and more useful
garnix.io
February 28, 2025 at 1:27 PM
The code is open source, and writing new modules is always possible. If this is something you're interested in doing, get in touch!
February 28, 2025 at 1:26 PM
There are a lot of other advantages to this system, especially related to the hosting component, that we'll talk about in a future blog post.
February 28, 2025 at 1:26 PM
In fact, you get to try out the system before even touching the repo. But in the end, we can generate a PR for you with this information captured in a flake.nix, so it's in version control, and so you can use it locally.
February 28, 2025 at 1:25 PM
The way we did this, for the Nix users, is by using the familiar module system, but developing types and fields that are oriented towards making really nice HTML forms out of them. So you can fill things out with nice autocomplete, inline documentation, etc., and without touching a Nix file.
February 28, 2025 at 1:25 PM
To focus in on just the first one of those: not only do you have to do no configuration at all in order to get build caching between CI runs, but the caching safely and transparently works across *all* users. If *someone* built it, you don't have to. This is leagues ahead of the alternatives.
February 28, 2025 at 1:23 PM
But under the hood, we are using Nix (and NixOS) to make sure you get a lot of the benefits of that stack:
- Effective and automatic *global* caching
- Easy local reproducibility
- Development shells
- Deduplication of concurrent builds
And much more
February 28, 2025 at 1:21 PM
Ah - any suggestions about how exactly we could convey that better? With a section of the docs?
January 27, 2025 at 2:45 PM
Well, the configuration is in source (garnix.io/docs/yaml_co...). But the defaults are sane (build all packages, nixosConfigs, checks, devShells, ..., but only on x86_64-linux), so usually you can get away with no config at all.
Garnix Doc: yaml config
Simple, fast, and green CI and caching for nix projects
garnix.io
January 27, 2025 at 11:51 AM
If you don't use flakes, garnix.io/blog/convert... shows how to enable them (you can also keep using non-flake nix as well if you want).
Garnix Blog: Nix flakes, and how to convert to them
Flakes are a new standard way of distributing nix packages, apps and configurations. This blog post teaches you how they work, by showing you how to convert an existing nix project to flakes.
garnix.io
January 27, 2025 at 10:59 AM
garnix does the entire CI for you, without using GitHub actions (though you can integrate it: garnix.io/docs/gh-acti...). You just need to have a flake.nix, and enable garnix in your repo (it's a GitHub app).
Garnix Doc: GitHub Actions Integration
Simple, fast, and green CI and caching for nix projects
garnix.io
January 27, 2025 at 10:59 AM
It does ignore them :)
December 17, 2024 at 7:34 AM
So instead of trusting n users for n caches (plus GitHub etc. which also usually gets the key), you just need to trust garnix for n caches.
December 17, 2024 at 6:04 AM
The model is very different than cachix. cachix gives the owner the key, so they can upload anything, and you have to trust them. With garnix users don't get to upload directly - only things that garnix itself built are uploaded.
December 17, 2024 at 6:03 AM