nix-fast-buildlisted
Install: claude install-skill ncaq/konoka
# nix-fast-build
[Mic92/nix-fast-build](https://github.com/Mic92/nix-fast-build)は
[nix-eval-jobs](https://github.com/nix-community/nix-eval-jobs)と
[nix-output-monitor](https://github.com/maralorn/nix-output-monitor)を組み合わせて、
Nix式の評価を並列実行するツールです。
checksがビルドされるため、
適切にflake.nixで設定されていればリント・ビルド・テストが全て実行されます。
`nix flake check`と比べて評価が並列化されるため高速です。
FlakeはGitで追跡されているファイルのみを対象とするため、
新規ファイルがある場合は事前に`git ls-files --others --exclude-standard -z | git add --intent-to-add --pathspec-from-file=- --pathspec-file-nul`を実行してください。
未追跡ファイルがなく空の入力でもエラーにはなりません。
## 典型的な使い方
### 手元のターミナルで実行する場合
```bash
nix-fast-build --option eval-cache false --no-link --skip-cached
```
nomによるリッチな出力が表示されます。
### Claude CodeやCIなど非対話環境で実行する場合
```bash
nix-fast-build --option eval-cache false --no-link --skip-cached --no-nom
```
nomはターミナル制御シーケンスに依存するため、
非対話環境では`--no-nom`を追加してください。
## IFDを使うプロジェクトでの注意
nix-fast-buildは`--systems`でビルド対象を絞っても、
評価は全アーキテクチャに対して行います。
IFD(Import From Derivation)は評価フェーズでderivationのビルドを要求するため、
ローカルでビルドできないアーキテクチャのIFDが走ってエラーになることがあります。
`nix flake check`はNix 2.16以降デフォルトで他システムの評価をスキップするためこの問題が出にくいですが、
nix-eval-jobsにはその仕組みがありません。
### 回避策: Flake URLでシステムを限定する
評価対象を現在のシステムに限定することで回避できます。
```bash
nix-fast-build --flake ".#checks.$(nix eval --raw --impure --expr builtins.currentSystem)" --no-link --skip-cached
```
`--impure`が���要ですが、
`builtins.currentSystem`を取得するだけなので実害はありません。
## オプション
`nix-fast-build --help`の順番に記載しています。
### `-f`, `--flake FLAKE`
評価・ビルド対象のFlake URLを指定します。
デフォルトは`.#checks