From c3e0e4682dc0af92159243542c00d12e366540f8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 21 Jul 2017 14:31:28 -0700 Subject: [PATCH] Use xvfb from container on CI --- Dockerfile | 4 ++++ script/cibuild | 5 +++-- tools/xvfb-init.sh | 23 +++++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 tools/xvfb-init.sh diff --git a/Dockerfile b/Dockerfile index e11d312bba61..611975eb9b43 100644 --- a/Dockerfile +++ b/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 diff --git a/script/cibuild b/script/cibuild index 53a1859df65b..2ac3f321dea5 100755 --- a/script/cibuild +++ b/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' diff --git a/tools/xvfb-init.sh b/tools/xvfb-init.sh new file mode 100644 index 000000000000..7e2890d8a5b0 --- /dev/null +++ b/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