Add simple test for nix upgrade-nix
This commit is contained in:
parent
308689f94b
commit
264e66f696
2 changed files with 20 additions and 1 deletions
12
release.nix
12
release.nix
|
@ -249,6 +249,18 @@ let
|
||||||
su - alice -c '_NIX_INSTALLER_TEST=1 ./nix-*/install'
|
su - alice -c '_NIX_INSTALLER_TEST=1 ./nix-*/install'
|
||||||
su - alice -c 'nix-store --verify'
|
su - alice -c 'nix-store --verify'
|
||||||
su - alice -c 'PAGER= nix-store -qR ${build.x86_64-linux}'
|
su - alice -c 'PAGER= nix-store -qR ${build.x86_64-linux}'
|
||||||
|
|
||||||
|
# Check whether 'nix upgrade-nix' works.
|
||||||
|
(! [ -L /nix/var/nix/profiles/per-user/alice/profile-2-link ])
|
||||||
|
cat > /tmp/paths.nix <<EOF
|
||||||
|
{
|
||||||
|
x86_64-linux = "${build.x86_64-linux}";
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
su - alice -c 'nix upgrade-nix -vvv --nix-store-paths-url file:///tmp/paths.nix'
|
||||||
|
[ -L /nix/var/nix/profiles/per-user/alice/profile-2-link ]
|
||||||
|
su - alice -c 'PAGER= nix-store -qR ${build.x86_64-linux}'
|
||||||
|
|
||||||
mkdir -p $out/nix-support
|
mkdir -p $out/nix-support
|
||||||
touch $out/nix-support/hydra-build-products
|
touch $out/nix-support/hydra-build-products
|
||||||
umount /nix
|
umount /nix
|
||||||
|
|
|
@ -9,6 +9,7 @@ using namespace nix;
|
||||||
struct CmdUpgradeNix : StoreCommand
|
struct CmdUpgradeNix : StoreCommand
|
||||||
{
|
{
|
||||||
Path profileDir;
|
Path profileDir;
|
||||||
|
std::string storePathsUrl = "https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix";
|
||||||
|
|
||||||
CmdUpgradeNix()
|
CmdUpgradeNix()
|
||||||
{
|
{
|
||||||
|
@ -18,6 +19,12 @@ struct CmdUpgradeNix : StoreCommand
|
||||||
.labels({"profile-dir"})
|
.labels({"profile-dir"})
|
||||||
.description("the Nix profile to upgrade")
|
.description("the Nix profile to upgrade")
|
||||||
.dest(&profileDir);
|
.dest(&profileDir);
|
||||||
|
|
||||||
|
mkFlag()
|
||||||
|
.longName("nix-store-paths-url")
|
||||||
|
.labels({"url"})
|
||||||
|
.description("URL of the file that contains the store paths of the latest Nix release")
|
||||||
|
.dest(&storePathsUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string name() override
|
std::string name() override
|
||||||
|
@ -115,7 +122,7 @@ struct CmdUpgradeNix : StoreCommand
|
||||||
Path getLatestNix(ref<Store> store)
|
Path getLatestNix(ref<Store> store)
|
||||||
{
|
{
|
||||||
// FIXME: use nixos.org?
|
// FIXME: use nixos.org?
|
||||||
auto req = DownloadRequest("https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix");
|
auto req = DownloadRequest(storePathsUrl);
|
||||||
auto res = getDownloader()->download(req);
|
auto res = getDownloader()->download(req);
|
||||||
|
|
||||||
auto state = std::make_unique<EvalState>(Strings(), store);
|
auto state = std::make_unique<EvalState>(Strings(), store);
|
||||||
|
|
Loading…
Reference in a new issue