Skip to content

nixos: Refactor to allow etc unit test#155892

Merged
roberth merged 4 commits intoNixOS:masterfrom
hercules-ci:nixos-etc-unit-test
Feb 6, 2022
Merged

nixos: Refactor to allow etc unit test#155892
roberth merged 4 commits intoNixOS:masterfrom
hercules-ci:nixos-etc-unit-test

Conversation

@roberth
Copy link
Member

@roberth roberth commented Jan 20, 2022

Motivation for this change

Work towards a more testable and flexible NixOS.

allow us to build an /etc/ for a machine on its own given a certain config, and then test that this meets certain criteria without spinning up a full VM

(thanks @Synthetica9 for phrasing this clearly)

See also commit messages.

Originally prototyped in #148456

Leaves nixosTests.acme hash unchanged.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@roberth roberth requested a review from dasJ as a code owner January 20, 2022 14:46
@github-actions github-actions bot added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` labels Jan 20, 2022
@roberth roberth added the 6.topic: testing Tooling for automated testing of packages and modules label Jan 20, 2022
@roberth roberth requested a review from aanderse January 20, 2022 14:47
@roberth roberth force-pushed the nixos-etc-unit-test branch from 3f6b0b0 to 61e6584 Compare January 20, 2022 15:02
@ofborg ofborg bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Jan 20, 2022
@Synthetica9
Copy link
Member

So if I understand correctly, this would allow us to build an /etc/ for a machine on its own given a certain config, and then test that this meets certain criteria without spinning up a full VM?

@roberth
Copy link
Member Author

roberth commented Jan 20, 2022

That is correct. I've added it to the PR description.

@roberth
Copy link
Member Author

roberth commented Jan 24, 2022

Will rebase after #156503

@aanderse
Copy link
Member

This looks really cool @roberth!

Having `pkgs` as a module argument is common, beyond just NixOS,
making this a useful convenience for setting it.

(cherry picked from commit dd6d8e3)
(cherry picked from commit 56c283e)
@roberth roberth force-pushed the nixos-etc-unit-test branch from 61e6584 to 7de8ea8 Compare January 30, 2022 08:06
@roberth
Copy link
Member Author

roberth commented Feb 6, 2022

Merging as incremental improvement.
It's not a great test yet, but a starting point for regression testing if need be.

@roberth roberth merged commit 6be11a8 into NixOS:master Feb 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: testing Tooling for automated testing of packages and modules 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants