# Add scripts/ci to bootstrap Nix on a minimal CI runner · jet/noisebell

[View on GitCafe](https://git.cafe/jet/noisebell/commit/8a79139f6bb771fc7a5f7ab8ba874ac5383e9e3d)

Repository: [jet/noisebell](https://git.cafe/jet/noisebell)

Visibility: public

Requested revision: 8a79139f6bb771fc7a5f7ab8ba874ac5383e9e3d

Requested commit: 8a79139f6bb771fc7a5f7ab8ba874ac5383e9e3d

Commit: 8a79139f6bb771fc7a5f7ab8ba874ac5383e9e3d

Tree: 3abab556a2d415bf3ee39cafaa7bb7324ce5f97a

Author: Jet

Committer: Jet

## Message

```
Add scripts/ci to bootstrap Nix on a minimal CI runner

Odyssey's Firecracker image is Alpine on a read-only root with no xz,
no useradd, a 64 MiB /tmp, the only real disk at /workspace, and no
devpts mounted. Each of those breaks a different part of the obvious
'install nix and build' path, and the runner caps how long a single
command line can be, so the workarounds cannot live in the command box.

The script mounts devpts (nix needs a pty to capture builder output),
points TMPDIR at the big volume, then picks the best available store:
nix on PATH, else a native install if /nix can be a mountpoint, else
nix-portable with bwrap in preference to proot.

POSIX sh, verified against dash and busybox ash and clean under
shellcheck -s sh.

```

## Parents

- [3c2e1f7ad447d3fc4bfa6feaf87c9cf669a80e1e](https://git.cafe/jet/noisebell/commit/3c2e1f7ad447d3fc4bfa6feaf87c9cf669a80e1e?format=markdown)

[Source at this commit](https://git.cafe/jet/noisebell/tree/8a79139f6bb771fc7a5f7ab8ba874ac5383e9e3d?format=markdown)
