nandi/jolt-nativepublic Fork 0
8c5607c
Commits
Clone
git clone https://git.rickub.com/nandi/jolt-native.git
git clone ssh://git@rickub.com/nandi/jolt-native.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Let the runner build locally again, just barely

max-jobs = 0 sent the fixed-output rust toolchain fetches to nixbuild,
whose sandbox has no network, so they failed; it also pushed every
trivial cargo-src derivation across an ssh round trip. Two local slots
fix both without giving the slow runner any real compiling to do.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nandi committed 2026-09-07T19:59:09-07:00 Browse files
8c5607c parent: fccae88
modified .gitlab-ci.yml +8 -7
@@ -19,12 +19,13 @@ check:
1919 # rather than a shallow single commit.
2020 GIT_DEPTH: "0"
2121 before_script:
22- # Everything heavy is offloaded to nixbuild.net; the runner only evaluates,
23- # copies results back and uploads. max-jobs = 0 means it refuses to build
24- # anything locally, so a misconfigured builder fails loudly instead of
25- # silently falling back to the slow runner. 16 concurrent remote jobs, not
26- # more: every in-flight goal costs the runner's single nix daemon an ssh-ng
27- # connection plus the path copy, and at 100 the daemon OOMs mid-pipeline.
22+ # Compilation is offloaded to nixbuild.net; the runner evaluates, fetches
23+ # and uploads. max-jobs stays small but NOT zero: at zero the runner refuses
24+ # to build anything at all, which sends the fixed-output fetches (the rust
25+ # toolchain tarballs) to nixbuild, where the sandbox has no network and they
26+ # fail. Two local slots keep those fetches -- and the hundreds of trivial
27+ # cargo-src/cargo-package derivations, each otherwise a 1.5s ssh round trip
28+ # -- on the runner, and everything expensive still lands on the builder.
2829 - |
2930 set -eu
3031 mkdir -p ~/.ssh
@@ -37,7 +38,7 @@ check:
3738 'experimental-features = nix-command flakes' \
3839 'builders = ssh-ng://eu.nixbuild.net x86_64-linux - 16 1 big-parallel,benchmark' \
3940 'builders-use-substitutes = true' \
40- 'max-jobs = 0' >> /etc/nix/nix.conf
41+ 'max-jobs = 2' >> /etc/nix/nix.conf
4142 script:
4243 - nix flake check -L
4344 # The store paths are read-only symlink farms; the runner uploads plain
@@ -19,12 +19,13 @@ check:
19 # rather than a shallow single commit.19 # rather than a shallow single commit.
20 GIT_DEPTH: "0"20 GIT_DEPTH: "0"
21 before_script:21 before_script:
22- # Everything heavy is offloaded to nixbuild.net; the runner only evaluates,22+ # Compilation is offloaded to nixbuild.net; the runner evaluates, fetches
23- # copies results back and uploads. max-jobs = 0 means it refuses to build23+ # and uploads. max-jobs stays small but NOT zero: at zero the runner refuses
24- # anything locally, so a misconfigured builder fails loudly instead of24+ # to build anything at all, which sends the fixed-output fetches (the rust
25- # silently falling back to the slow runner. 16 concurrent remote jobs, not25+ # toolchain tarballs) to nixbuild, where the sandbox has no network and they
26- # more: every in-flight goal costs the runner's single nix daemon an ssh-ng26+ # fail. Two local slots keep those fetches -- and the hundreds of trivial
27- # connection plus the path copy, and at 100 the daemon OOMs mid-pipeline.27+ # cargo-src/cargo-package derivations, each otherwise a 1.5s ssh round trip
28+ # -- on the runner, and everything expensive still lands on the builder.
28 - |29 - |
29 set -eu30 set -eu
30 mkdir -p ~/.ssh31 mkdir -p ~/.ssh
@@ -37,7 +38,7 @@ check:
37 'experimental-features = nix-command flakes' \38 'experimental-features = nix-command flakes' \
38 'builders = ssh-ng://eu.nixbuild.net x86_64-linux - 16 1 big-parallel,benchmark' \39 'builders = ssh-ng://eu.nixbuild.net x86_64-linux - 16 1 big-parallel,benchmark' \
39 'builders-use-substitutes = true' \40 'builders-use-substitutes = true' \
40- 'max-jobs = 0' >> /etc/nix/nix.conf41+ 'max-jobs = 2' >> /etc/nix/nix.conf
41 script:42 script:
42 - nix flake check -L43 - nix flake check -L
43 # The store paths are read-only symlink farms; the runner uploads plain44 # The store paths are read-only symlink farms; the runner uploads plain