summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/deployment/scrape/selenium.nix
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2017-12-09 15:25:12 +0100
committerlassulus <lassulus@lassul.us>2017-12-09 15:25:12 +0100
commitf5e123992ea6781d29ef2ac64d52f71a97d13010 (patch)
tree3f147f2bb1aa0821bb07601c4f463de0eac56812 /makefu/2configs/deployment/scrape/selenium.nix
parent994d822543ecc0d49cfa9319ba21d0cbf1f78b8a (diff)
parenta64144db01d2a97f1480bdbb0908d493c3f208a2 (diff)
Merge remote-tracking branch 'gum/master'
Diffstat (limited to 'makefu/2configs/deployment/scrape/selenium.nix')
-rw-r--r--makefu/2configs/deployment/scrape/selenium.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/makefu/2configs/deployment/scrape/selenium.nix b/makefu/2configs/deployment/scrape/selenium.nix
new file mode 100644
index 000000000..d700259ba
--- /dev/null
+++ b/makefu/2configs/deployment/scrape/selenium.nix
@@ -0,0 +1,65 @@
+{config, pkgs, lib, ...}:
+with <stockholm/lib>;
+let
+ selenium-pw = <secrets/selenium-vncpasswd>;
+in {
+ services.jenkinsSlave.enable = true;
+ users.users.selenium = {
+ uid = genid "selenium";
+ extraGroups = [ "plugdev" ];
+ };
+
+ fonts.enableFontDir = true;
+
+ # networking.firewall.allowedTCPPorts = [ 5910 ];
+
+ systemd.services.selenium-X11 =
+ {
+ description = "X11 vnc for selenium";
+ wantedBy = [ "multi-user.target" ];
+ path = [ pkgs.xorg.xorgserver pkgs.tightvnc pkgs.dwm ];
+ environment =
+ {
+ DISPLAY = ":10";
+ };
+ script = ''
+ set -ex
+ [ -e /tmp/.X10-lock ] && ( set +e ; chmod u+w /tmp/.X10-lock ; rm /tmp/.X10-lock )
+ [ -e /tmp/.X11-unix/X10 ] && ( set +e ; chmod u+w /tmp/.X11-unix/X10 ; rm /tmp/.X11-unix/X10 )
+ mkdir -p ~/.vnc
+ cp -f ${selenium-pw} ~/.vnc/passwd
+ chmod go-rwx ~/.vnc/passwd
+ echo > ~/.vnc/xstartup
+ chmod u+x ~/.vnc/xstartup
+ vncserver $DISPLAY -geometry 1280x1024 -depth 24 -name jenkins -ac
+ dwm
+ '';
+ preStop = ''
+ vncserver -kill $DISPLAY
+ '';
+ serviceConfig = {
+ User = "selenium";
+ };
+ };
+
+ systemd.services.selenium-server =
+ {
+ description = "selenium-server";
+ wantedBy = [ "multi-user.target" ];
+ requires = [ "selenium-X11.service" ];
+ path = [ pkgs.chromium
+ pkgs.firefoxWrapper ];
+ environment =
+ {
+ DISPLAY = ":10";
+ };
+ script = ''
+ ${pkgs.selenium-server-standalone}/bin/selenium-server -Dwebdriver.enable.native.events=1
+ '';
+ serviceConfig = {
+ User = "selenium";
+ };
+ };
+
+
+}