공식 Nix Docker 이미지를 사용하여 구성을 테스트하는 방법은 무엇입니까?

공식 Nix Docker 이미지를 사용하여 구성을 테스트하는 방법은 무엇입니까?

구축하려고 해요내 Nix 구성GitLab CI에서는 모든 변경 사항이 최소한 NixOS에서 작동할 수 있는지 확인하세요. 이것공식 Nix Docker 이미지NixOS와 구조가 매우 다릅니다(알파인 기반), 해결 방법을 모르는 오류가 계속 발생합니다.

$ 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')

유일한 다른환매 계약나는 비슷한 일을 하는 것이많은여기서 하고 싶은 것보다 더 복잡합니다.

답변1

해결됨, 마침내:

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.systemPackagesci.yml을 지웠습니다.

관련 정보