Travis CI XVFB Breaking Change
Posted on January 14, 2019 by Ben Limmer

This morning I was greeted by a bunch of failing front-end builds on Travis CI because XVFB couldn’t start. Here’s how to fix it.
The Problem
Travis CI released an update to their Xenial build environemnt, which introduced a new way to start up XVFB for front-end builds.
Unfortunately, they broke all existing builds based on their documentation, which had you set it up like this:
before_script: # start XVFB to test the extension (headless does not install extensions fully) # https://docs.travis-ci.com/user/gui-and-headless-browsers/#using-xvfb-to-run-tests-that-require-a-gui - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - sleep 3 # give xvfb some time to start
Starting on January 15, 2019, your builds will start failing with messages like this:
$ export DISPLAY=:99.0$ sh -e /etc/init.d/xvfb startsh: 0: Can't open /etc/init.d/xvfbThe command "sh -e /etc/init.d/xvfb start" failed and exited with 127 during .
The Solution
You need to remove the portion of your before_script
that starts xvfb
and instead use the new syntax of:
services: - xvfb
This new syntax is now in their documentation, so check that out for more information.