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