!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

888 Members
For people hacking on the Nix package manager itself191 Servers

Load older messages


SenderMessageTime
20 Sep 2025
@getchoo:matrix.orggetchoo

i've done this a good number of times actually (https://github.com/getchoo/nix2workflow), but honestly...i think it might be a bit gimmicky

for me, the main friction between integrating gha with nix stuff is that it doesn't Just Work with nix - like hydra, hercules-ci, or buildbot-nix would. defining stuff with nix using json makes it a bit nicer since now i don't need to bounce between the workflow file and my nix code, but i'm still having a lot of glue code to get the two working, so i don't think it really solves that core problem, just makes it slightly less bad.

(sidenote: it's also obviously not a requirement of this concept, but anecdotally i've found ci to become pretty slow with the one job -> one attribute setup that i see most people use with it, unless it's a ton of heavy packages that don't share any dependencies)

nowadays i really think a good way to go for running nix stuff in gha is a simple nix flake check. it's basically what buildbot-nix does, doesn't really require any glue code, doesn't waste extra jobs/runners for each attribute, is easily reproducible locally, and should be even better once https://github.com/NixOS/nix/pull/13998 lands in a release

01:29:35
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)That’s not a very good approach when it comes to memory usage. CI used to do it and it was atrocious. Also we want to test much more than what is exposed in flake outputs (the ones that flake check will build). There’s some intersection with hydraJobs, but only some.05:37:08
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Like this will only work for toy examples.05:39:16
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Flake check is a fundamentally broken command IMO. It leaks memory all over the place that is very much necessary for doing useful things like compiling C++05:41:39
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @getchoo:matrix.org

i've done this a good number of times actually (https://github.com/getchoo/nix2workflow), but honestly...i think it might be a bit gimmicky

for me, the main friction between integrating gha with nix stuff is that it doesn't Just Work with nix - like hydra, hercules-ci, or buildbot-nix would. defining stuff with nix using json makes it a bit nicer since now i don't need to bounce between the workflow file and my nix code, but i'm still having a lot of glue code to get the two working, so i don't think it really solves that core problem, just makes it slightly less bad.

(sidenote: it's also obviously not a requirement of this concept, but anecdotally i've found ci to become pretty slow with the one job -> one attribute setup that i see most people use with it, unless it's a ton of heavy packages that don't share any dependencies)

nowadays i really think a good way to go for running nix stuff in gha is a simple nix flake check. it's basically what buildbot-nix does, doesn't really require any glue code, doesn't waste extra jobs/runners for each attribute, is easily reproducible locally, and should be even better once https://github.com/NixOS/nix/pull/13998 lands in a release

Also I wasn’t suggesting a matrix per one attribute. We should build components (all libs, unit tests + functional tests) only once per matrix job, otherwise it’s too slow. A matrix of nixos tests might be nice though once the cli is built
05:55:22
@akanygen:matrix.orgHierophilos removed their profile picture.21:35:53
@akanygen:matrix.orgHierophilos set a profile picture.21:37:09
@akanygen:matrix.orgHierophilos changed their profile picture.21:42:19
@akanygen:matrix.orgHierophilos removed their profile picture.21:42:53
@akanygen:matrix.orgHierophilos set a profile picture.21:43:56
@fzakaria:one.ems.hostfzakariaHi!21:46:56
22 Sep 2025
@Ericson2314:matrix.orgJohn Ericsonhttps://tracker.debian.org/pkg/nix the Debian package for Nix might need some help14:41:12
@Ericson2314:matrix.orgJohn EricsonAnyone have the expertise necessary for this?14:41:35
@Ericson2314:matrix.orgJohn Ericsonit needs to be redone post Meson (stuck on 2.26 right now)14:41:46
@Ericson2314:matrix.orgJohn Ericsonand there is also some link error that was reported (symbol seems to be some system thing, doesn't make sense to me)14:42:14
@sandro:supersandro.deSandro 🐧https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1114222 is the direct link I guess15:03:32
23 Sep 2025
@sinan:sinanmohd.comsinan changed their profile picture.02:47:54
@a-kenji:matrix.orgkenji changed their display name from a-kenji to kenji.10:41:51
@znaniye:matrix.orgznaniye joined the room.11:50:50
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)

Doesn't this look like a binutils bug? At least this is very suspicious:

assertion fail ../../bfd/elf-sframe.c:140

20:31:21
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)libbfd is broken? https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/elf-sframe.c;h=2cb732c3016f80c11f0bb77d1ce54ae2f3a2121d;hb=HEAD#l14020:33:18
@friedow:beeper.com@friedow:beeper.com joined the room.21:16:22
24 Sep 2025
@joerg:thalheim.ioMic92
In reply to @xokdvium:matrix.org
I had a pretty crazy idea. How about we defined the workflow matrix in Nix? GHA can read a dynamically generated matrix from JSON. That would make stuff much easier
All the implementation i found so far do not respect dependencies between jobs and also do not deduplicate aliases. They work okay for simpler flakes but get too slow for larger ones.
07:24:45
@joerg:thalheim.ioMic92They also should skip workflow steps that have been already build and do instantiation and building in two steps to reclaim memory 07:26:26
@joerg:thalheim.ioMic92You are also limited to 50 flake outputs07:27:04
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @joerg:thalheim.io
All the implementation i found so far do not respect dependencies between jobs and also do not deduplicate aliases. They work okay for simpler flakes but get too slow for larger ones.
I was thinking of doing something a bit coarse-grained and manual. Like building with/without sanitizers in separate jobs and define that in nix. Not per-output splitting
07:28:42
@joerg:thalheim.ioMic92That's more reasonable 07:28:58
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) That would help a bit with system -> runner os translation that blocks us from adding aarch64–Linux to gha 07:30:08
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)It’s a bit haphazard atm07:30:29
25 Sep 2025
@sebastian:srx.digitalsebastian joined the room.18:42:52

Show newer messages


Back to Room ListRoom Version: 6