mirror of
https://github.com/nix-community/home-manager
synced 2024-11-23 03:29:45 +01:00
flake: Expose tests to allow running purely (#3412)
* flake: Expose tests to allow running purely The existing way to run tests with `nix-shell` relies on impure usage of `<nixpkgs>`. This can lead to failures when the local nixpkgs is incompatible with the locked one. I.e., where CI is passing but a contributor may experience a failure. So, expose tests as `devShells.tests` to use the locked nixpkgs and allow easy invocation via `nix develop`. * tests: Remove impure path With Nix 2.10+ and pure evaluation mode e.g. ``` nix run nixpkgs/nixos-unstable#nixVersions.nix_2_10 -- develop -i .#tests.zplug-modules ``` this test would fail with: > error: the path '~/.customZplugHome' can not be resolved in pure mode Since the test only cares that it is a path, rather than anything about its contents, use a dummy empty directory.
This commit is contained in:
parent
5c98a8d860
commit
cc58d31953
3 changed files with 8 additions and 1 deletions
|
@ -256,3 +256,8 @@ and run an individual test, for example `alacritty-empty-settings`, through
|
||||||
|
|
||||||
[source,console]
|
[source,console]
|
||||||
$ nix-shell --pure tests -A run.alacritty-empty-settings
|
$ nix-shell --pure tests -A run.alacritty-empty-settings
|
||||||
|
|
||||||
|
However, those invocations will impurely source the system’s nixpkgs, and may cause failures. To run against the nixpkgs from the flake.lock, use instead e.g.
|
||||||
|
|
||||||
|
[source,console]
|
||||||
|
$ nix develop --ignore-environment .#tests.all
|
||||||
|
|
|
@ -88,7 +88,9 @@
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
docs = import ./docs { inherit pkgs; };
|
docs = import ./docs { inherit pkgs; };
|
||||||
|
tests = import ./tests { inherit pkgs; };
|
||||||
in {
|
in {
|
||||||
|
devShells.tests = tests.run;
|
||||||
packages = rec {
|
packages = rec {
|
||||||
home-manager = pkgs.callPackage ./home-manager { };
|
home-manager = pkgs.callPackage ./home-manager { };
|
||||||
docs-html = docs.manual.html;
|
docs-html = docs.manual.html;
|
||||||
|
|
|
@ -8,7 +8,7 @@ with lib;
|
||||||
enable = true;
|
enable = true;
|
||||||
zplug = {
|
zplug = {
|
||||||
enable = true;
|
enable = true;
|
||||||
zplugHome = ~/.customZplugHome;
|
zplugHome = pkgs.emptyDirectory;
|
||||||
plugins = [
|
plugins = [
|
||||||
{
|
{
|
||||||
name = "plugins/git";
|
name = "plugins/git";
|
||||||
|
|
Loading…
Reference in a new issue