nandi/jolt-nativepublic Fork 0
7b6f701
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.

Offload CI builds to nixbuild.net

The shared runner was the bottleneck; it now only evaluates, copies
results back and uploads. max-jobs = 0 so a broken builder fails loudly
instead of silently falling back to the slow runner.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nandi committed 2026-09-07T19:07:17-07:00 Browse files
7b6f701 parent: e98a184
modified .gitlab-ci.yml +17 -1
@@ -19,7 +19,23 @@ check:
1919 # rather than a shallow single commit.
2020 GIT_DEPTH: "0"
2121 before_script:
22- - echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
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.
26+ - |
27+ set -eu
28+ mkdir -p ~/.ssh
29+ # base64 because GitLab can only mask a single-line variable.
30+ printf '%s' "$NIXBUILD_SSH_KEY" | base64 -d > ~/.ssh/nixbuild
31+ chmod 600 ~/.ssh/nixbuild
32+ printf 'Host eu.nixbuild.net\n PubkeyAcceptedKeyTypes ssh-ed25519\n IdentityFile ~/.ssh/nixbuild\n IdentitiesOnly yes\n' > ~/.ssh/config
33+ printf 'eu.nixbuild.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPIQCZc54poJ8vqawd8TraNryQeJnvH1eLpIDgbiqymM\n' > ~/.ssh/known_hosts
34+ printf '%s\n' \
35+ 'experimental-features = nix-command flakes' \
36+ 'builders = ssh-ng://eu.nixbuild.net x86_64-linux - 100 1 big-parallel,benchmark' \
37+ 'builders-use-substitutes = true' \
38+ 'max-jobs = 0' >> /etc/nix/nix.conf
2339 script:
2440 - nix flake check -L
2541 # The store paths are read-only symlink farms; the runner uploads plain
@@ -19,7 +19,23 @@ 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- - echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf22+ # 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.
26+ - |
27+ set -eu
28+ mkdir -p ~/.ssh
29+ # base64 because GitLab can only mask a single-line variable.
30+ printf '%s' "$NIXBUILD_SSH_KEY" | base64 -d > ~/.ssh/nixbuild
31+ chmod 600 ~/.ssh/nixbuild
32+ printf 'Host eu.nixbuild.net\n PubkeyAcceptedKeyTypes ssh-ed25519\n IdentityFile ~/.ssh/nixbuild\n IdentitiesOnly yes\n' > ~/.ssh/config
33+ printf 'eu.nixbuild.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPIQCZc54poJ8vqawd8TraNryQeJnvH1eLpIDgbiqymM\n' > ~/.ssh/known_hosts
34+ printf '%s\n' \
35+ 'experimental-features = nix-command flakes' \
36+ 'builders = ssh-ng://eu.nixbuild.net x86_64-linux - 100 1 big-parallel,benchmark' \
37+ 'builders-use-substitutes = true' \
38+ 'max-jobs = 0' >> /etc/nix/nix.conf
23 script:39 script:
24 - nix flake check -L40 - nix flake check -L
25 # The store paths are read-only symlink farms; the runner uploads plain41 # The store paths are read-only symlink farms; the runner uploads plain