Browse Source

Use xvfb from container on CI

Kevin Sawicki 7 years ago
parent
commit
c3e0e4682d
3 changed files with 30 additions and 2 deletions
  1. 4 0
      Dockerfile
  2. 3 2
      script/cibuild
  3. 23 0
      tools/xvfb-init.sh

+ 4 - 0
Dockerfile

@@ -6,3 +6,7 @@ RUN apt-get update && apt-get install -y --force-yes nodejs
 
 # Install wget used by crash reporter
 RUN apt-get install -y --force-yes  wget
+
+# Add xvfb init script
+ADD tools/xvfb-init.sh /etc/init.d/xvfb
+RUN chmod a+x /etc/init.d/xvfb

+ 3 - 2
script/cibuild

@@ -60,8 +60,9 @@ def main():
       deps += LINUX_DEPS_NO_ARM
     execute(['sudo', 'apt-get', 'install'] + deps)
 
-    execute(['sh', '-e', '/etc/init.d/xvfb', 'start'])
-    os.environ['DISPLAY'] = ':99.0'
+ if PLATFORM == 'linux':
+  os.environ['DISPLAY'] = ':99.0'
+  execute(['sh', '-e', '/etc/init.d/xvfb', 'start'])
 
   # CI's npm is not reliable.
   npm = 'npm.cmd' if PLATFORM == 'win32' else 'npm'

+ 23 - 0
tools/xvfb-init.sh

@@ -0,0 +1,23 @@
+XVFB=/usr/bin/Xvfb
+XVFBARGS="$DISPLAY -ac -screen 0 1024x768x16 +extension RANDR"
+PIDFILE=/var/xvfb_${DISPLAY:1}.pid
+case "$1" in
+  start)
+    echo -n "Starting virtual X frame buffer: Xvfb"
+    /sbin/start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
+    echo "."
+    ;;
+  stop)
+    echo -n "Stopping virtual X frame buffer: Xvfb"
+    /sbin/start-stop-daemon --stop --quiet --pidfile $PIDFILE
+    echo "."
+    ;;
+  restart)
+    $0 stop
+    $0 start
+    ;;
+  *)
+  echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
+  exit 1
+esac
+exit 0