Nixos
如何使用官方 Nix Docker 鏡像來測試配置?
我正在嘗試在 GitLab CI 中建構我的 Nix 配置,以確保任何更改至少有機會在 NixOS 中工作。Nix Docker 官方鏡像的結構與 NixOS (基於 Alpine )有很大不同,我一直收到一個錯誤,我不知道如何解決:
$ docker run --volume=$(pwd):/etc/nixos --interactive --rm --tty nixos/nix 5cc8dad8d887:/# nix-build /etc/nixos/configuration.nix error: cannot auto-call a function that has an argument without a default value ('config')
甚至生成的文件
nixos-generate-config
也有同樣的問題:$ cd "$(mktemp --directory)" $ nixos-generate-config --root . $ nix-build etc/nixos/configuration.nix error: cannot auto-call a function that has an argument without a default value ('config')
我發現做類似事情的唯一其他repo比我希望在這裡做的要復雜得多*。*
build: stage: test image: nixos/nix before_script: - echo system-features = kvm | tee -a /etc/nix/nix.conf - echo {} | tee common.nix hardware-configuration.nix host.nix - nix-env --install --attr nixpkgs.nixos-rebuild nixpkgs.man script: - nix-build '<nixpkgs/nixos>' -I nixos-config=ci.nix cache: - key: files: - configuration.nix paths: - /nix/store
ci.nix 覆蓋了一些能夠建構的東西:
{ lib, ... }: { imports = [ ./configuration.nix ]; boot = lib.mkForce { }; environment.systemPackages = lib.mkForce [ ]; }
警告:為了避免磁碟空間不足(或必須創建和維護我自己的跑步者),我
environment.systemPackages
在 ci.yml 中清空了。