Merge pull request #2629 from letac/master
Phabricator, a web application, snapshot of 2014-05-12
This commit is contained in:
commit
2558fa587b
2 changed files with 107 additions and 0 deletions
|
@ -0,0 +1,41 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
phabricatorRoot = pkgs.stdenv.mkDerivation rec {
|
||||
version = "2014-05-12";
|
||||
name = "phabricator-${version}";
|
||||
srcLibphutil = pkgs.fetchgit {
|
||||
url = git://github.com/facebook/libphutil.git;
|
||||
rev = "2f3b5a1cf6ea464a0250d4b1c653a795a90d2716";
|
||||
sha256 = "9598cec400984dc149162f1e648814a54ea0cd34fcd529973dc83f5486fdd9fd";
|
||||
};
|
||||
srcArcanist = pkgs.fetchgit {
|
||||
url = git://github.com/facebook/arcanist.git;
|
||||
rev = "54c377448db8dbc40f0ca86d43c837d30e493485";
|
||||
sha256 = "086db3c0d1154fbad23e7c6def31fd913384ee20247b329515838b669c3028e0";
|
||||
};
|
||||
srcPhabricator = pkgs.fetchgit {
|
||||
url = git://github.com/facebook/phabricator.git;
|
||||
rev = "1644ef185ecf1e9fca3eb6b16351ef46b19d110f";
|
||||
sha256 = "e1135e4ba76d53f48aad4161563035414ed7e878f39a8a34a875a01b41b2a084";
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out
|
||||
cp -R ${srcLibphutil} $out/libphutil
|
||||
cp -R ${srcArcanist} $out/arcanist
|
||||
cp -R ${srcPhabricator} $out/phabricator
|
||||
'';
|
||||
};
|
||||
in {
|
||||
enablePHP = true;
|
||||
extraApacheModules = [ "mod_rewrite" ];
|
||||
DocumentRoot = "${phabricatorRoot}/phabricator/webroot";
|
||||
extraConfig = ''
|
||||
DocumentRoot ${phabricatorRoot}/phabricator/webroot
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^/rsrc/(.*) - [L,QSA]
|
||||
RewriteRule ^/favicon.ico - [L,QSA]
|
||||
RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
|
||||
'';
|
||||
}
|
66
nixos/tests/phabricator.nix
Normal file
66
nixos/tests/phabricator.nix
Normal file
|
@ -0,0 +1,66 @@
|
|||
import ./make-test.nix ({ pkgs, ... }: {
|
||||
|
||||
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";}];
|
||||
}];
|
||||
};
|
||||
|
||||
mysql = {
|
||||
enable = true;
|
||||
package = pkgs.mysql;
|
||||
};
|
||||
};
|
||||
|
||||
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");
|
||||
'';
|
||||
})
|
Loading…
Reference in a new issue