Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nixos: Refactor to allow etc unit test #155892

Merged
merged 4 commits into from
Feb 6, 2022

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 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants