nixos/hydra: enhance test for multiple Nix versions

Hydra should support multiple Nix versions (and currently contains fixes
to work with Nix 2.0 and higher).

Further Nix versions can be added to the `hydraPkgs` expression in the
test case which lists all supported Nix versions for Hydra.
This commit is contained in:
Maximilian Bosch 2019-02-04 23:58:20 +01:00
parent acfc1c1535
commit 1649b4899f
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E

View file

@ -1,6 +1,10 @@
import ../make-test.nix ({ pkgs, ...} :
{ system ? builtins.currentSystem
, config ? { }
, pkgs ? import ../../.. { inherit system config; }
}:
let
trivialJob = pkgs.writeTextDir "trivial.nix" ''
{ trivial = builtins.derivation {
name = "trivial";
@ -21,15 +25,21 @@ let
'';
};
in {
name = "hydra-init-localdb";
callTest = f: f { inherit system pkgs; };
hydraPkgs = {
inherit (pkgs) nixStable nixUnstable;
};
tests = pkgs.lib.flip pkgs.lib.mapAttrs hydraPkgs (name: nix:
callTest (import ../make-test.nix ({ pkgs, lib, ... }:
{
name = "hydra-with-${name}";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ pstn lewo ma27 ];
};
machine =
{ pkgs, ... }:
machine = { pkgs, ... }:
{
virtualisation.memorySize = 1024;
time.timeZone = "UTC";
@ -41,6 +51,8 @@ in {
#Hydra needs those settings to start up, so we add something not harmfull.
hydraURL = "example.com";
notificationSender = "example@example.com";
package = pkgs.hydra.override { inherit nix; };
};
nix = {
buildMachines = [{
@ -52,8 +64,7 @@ in {
};
};
testScript =
''
testScript = ''
# let the system boot up
$machine->waitForUnit("multi-user.target");
# test whether the database is running
@ -74,4 +85,7 @@ in {
$machine->waitUntilSucceeds('curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq');
'';
})
})));
in
tests