Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

test: build garden tests in nix package

+31 -4
+8 -1
apps/garden/lib/garden/profile.ex
··· 121 121 case System.get_env("XDG_STATE_HOME") do 122 122 nil -> 123 123 # Get current user and look up their home directory 124 - case get_user_home(System.fetch_env!("USER")) do 124 + case get_user_home(System.get_env("USER", get_username!())) do 125 125 {:ok, home} -> 126 126 {:ok, "#{home}/.local/state/nix/profiles/home-manager"} 127 127 ··· 157 157 158 158 {_output, _exit_code} -> 159 159 fallback_get_user_home(username) 160 + end 161 + end 162 + 163 + def get_username!() do 164 + with {output, 0} <- System.cmd("id", ["--user", "--name"], stderr_to_stdout: true), 165 + username when username != "" <- String.trim(output) do 166 + username 160 167 end 161 168 end 162 169
+1 -1
mix.exs
··· 44 44 [ 45 45 {:dialyxir, "~> 1.0", only: [:dev]}, 46 46 {:deps_nix, "~> 3.0", only: [:dev]}, 47 - {:igniter, "~> 0.7", only: [:dev, :test], override: true}, 47 + {:igniter, "~> 0.7", only: [:dev, :test], override: true} 48 48 ] 49 49 end 50 50 end
+22 -2
nix/packages/garden.nix
··· 1 1 { 2 2 beamPackages, 3 3 callPackages, 4 + getent, 4 5 lib, 5 6 version, 7 + tzdata, 6 8 }: 7 9 8 10 beamPackages.mixRelease { ··· 22 24 ]; 23 25 }; 24 26 27 + nativeBuildInputs = [ tzdata ]; 28 + 25 29 mixReleaseName = "garden"; 26 30 27 31 mixNixDeps = callPackages ./umbrella-deps.nix { inherit beamPackages; }; ··· 30 34 mv $out/bin/garden $out/bin/sower-garden 31 35 ''; 32 36 33 - # Disable checks for now 34 - doCheck = false; 37 + doCheck = true; 38 + nativeCheckInputs = [ 39 + getent 40 + ]; 41 + checkPhase = '' 42 + runHook preCheck 43 + 44 + export MIX_ENV=test 45 + ln -sv $PWD/_build/prod _build/test 46 + 47 + pushd apps/garden 48 + mix do deps.loadpaths --no-deps-check + test 49 + popd 50 + 51 + export MIX_ENV=prod 52 + 53 + runHook postCheck 54 + ''; 35 55 36 56 meta.mainProgram = "sower-garden"; 37 57 }