2014-05-12 21:59:40 +04:00
|
|
|
import ./make-test.nix ({ pkgs, ... }: {
|
2014-06-28 18:04:49 +04:00
|
|
|
name = "phabricator";
|
2014-05-12 21:59:40 +04:00
|
|
|
|
|
|
|
nodes = {
|
|
|
|
storage =
|
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{ services.nfs.server.enable = true;
|
|
|
|
services.nfs.server.exports = ''
|
|
|
|
/repos 192.168.1.0/255.255.255.0(rw,no_root_squash)
|
|
|
|
'';
|
|
|
|
services.nfs.server.createMountPoints = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
webserver =
|
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{ fileSystems = pkgs.lib.mkVMOverride
|
|
|
|
[ { mountPoint = "/repos";
|
|
|
|
device = "storage:/repos";
|
|
|
|
fsType = "nfs";
|
|
|
|
}
|
|
|
|
];
|
|
|
|
networking.firewall.enable = false;
|
|
|
|
networking.useDHCP = false;
|
|
|
|
|
|
|
|
services = {
|
|
|
|
httpd = {
|
|
|
|
enable = true;
|
|
|
|
adminAddr = "root@localhost";
|
|
|
|
virtualHosts = [{
|
|
|
|
hostName = "phabricator.local";
|
|
|
|
extraSubservices = [{serviceType = "phabricator";}];
|
|
|
|
}];
|
|
|
|
};
|
|
|
|
|
2014-07-17 14:51:17 +04:00
|
|
|
phd = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
2014-05-12 21:59:40 +04:00
|
|
|
mysql = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.mysql;
|
2014-07-17 14:51:17 +04:00
|
|
|
extraOptions = ''
|
|
|
|
sql_mode=STRICT_ALL_TABLES
|
|
|
|
'';
|
2014-05-12 21:59:40 +04:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
environment.systemPackages = [ pkgs.php ];
|
|
|
|
};
|
|
|
|
|
|
|
|
client =
|
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{ imports = [ ./common/x11.nix ];
|
|
|
|
services.xserver.desktopManager.kde4.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
testScript =
|
|
|
|
''
|
|
|
|
startAll;
|
|
|
|
|
|
|
|
$client->waitForX;
|
|
|
|
|
|
|
|
$webserver->waitForUnit("mysql");
|
|
|
|
$webserver->waitForUnit("httpd");
|
|
|
|
$webserver->execute("cd /nix/store; less >/repos/log1");
|
|
|
|
|
|
|
|
$client->sleep(30); # loading takes a long time
|
|
|
|
$client->execute("konqueror http://webserver/ &");
|
|
|
|
$client->sleep(90); # loading takes a long time
|
|
|
|
|
|
|
|
$client->screenshot("screen");
|
|
|
|
'';
|
|
|
|
})
|