forked from mirrors/nixpkgs
bd5324c4fc
Upgrades Hydra to the latest master/flake branch. To perform this upgrade, it's needed to do a non-trivial db-migration which provides a massive performance-improvement[1]. The basic ideas behind multi-step upgrades of services between NixOS versions have been gathered already[2]. For further context it's recommended to read this first. Basically, the following steps are needed: * Upgrade to a non-breaking version of Hydra with the db-changes (columns are still nullable here). If `system.stateVersion` is set to something older than 20.03, the package will be selected automatically, otherwise `pkgs.hydra-migration` needs to be used. * Run `hydra-backfill-ids` on the server. * Deploy either `pkgs.hydra-unstable` (for Hydra master) or `pkgs.hydra-flakes` (for flakes-support) to activate the optimization. The steps are also documented in the release-notes and in the module using `warnings`. `pkgs.hydra` has been removed as latest Hydra doesn't compile with `pkgs.nixStable` and to ensure a graceful migration using the newly introduced packages. To verify the approach, a simple vm-test has been added which verifies the migration steps. [1] https://github.com/NixOS/hydra/pull/711 [2] https://github.com/NixOS/nixpkgs/pull/82353#issuecomment-598269471
43 lines
1.3 KiB
Nix
43 lines
1.3 KiB
Nix
{ fetchFromGitHub, nixStable, nixUnstable, callPackage, nixFlakes }:
|
|
|
|
{
|
|
# Package for phase-1 of the db migration for Hydra.
|
|
# https://github.com/NixOS/hydra/pull/711
|
|
hydra-migration = callPackage ./common.nix {
|
|
version = "2020-02-10";
|
|
src = fetchFromGitHub {
|
|
owner = "NixOS";
|
|
repo = "hydra";
|
|
rev = "add4f610ce6f206fb44702b5a894d877b3a30e3a";
|
|
sha256 = "1d8hdgjx2ys0zmixi2ydmimdq7ml20h1ji4amwawcyw59kssh6l3";
|
|
};
|
|
nix = nixStable;
|
|
migration = true;
|
|
};
|
|
|
|
# Hydra from latest master (or flakes) branch. Contains breaking changes,
|
|
# so when having an older version, `pkgs.hydra-migration` should be deployed first.
|
|
|
|
hydra-unstable = callPackage ./common.nix {
|
|
version = "2020-03-24";
|
|
src = fetchFromGitHub {
|
|
owner = "NixOS";
|
|
repo = "hydra";
|
|
rev = "12cc46cdb36321acd4c982429a86eb0f8f3cc969";
|
|
sha256 = "10ipxzdxr47c8w5jg69mbax2ykc7lb5fs9bbdd3iai9wzyfz17ln";
|
|
};
|
|
nix = nixUnstable;
|
|
};
|
|
|
|
hydra-flakes = callPackage ./common.nix {
|
|
version = "2020-03-27";
|
|
src = fetchFromGitHub {
|
|
owner = "NixOS";
|
|
repo = "hydra";
|
|
rev = "a7540b141d085a7e78c21fda8e8c05907c659b34";
|
|
sha256 = "08fs7593w5zs8vh4c66gvrxk6s840pp6hj8nwf51wsa27kg5a943";
|
|
};
|
|
nix = nixFlakes;
|
|
};
|
|
}
|