This isn't an optimal build:
1. We're using an untagged, rolling Arch Linux base image for our Docker
image, meaning that potentially every build uses a different base. The
reason for using an Arch base is because Arch is the only system that
has new enough versions of wlroots' dependencies. Alpine has this too,
but is sufficiently different (e.g. musl and no logind) from other
systems such that I'm not sure whether it will be of any benefit. In the
future, when wlroots is less bleeding edge, we can switch to tagged
releases of e.g. Fedora.
2. We don't have access to hardware, hence we cannot run with wlroots'
headless backend. We can solve this by making the hardware available to
our container with docker's --device=/dev/dri/renderD128, but we don't
have control over this inside our Travis instance. Hence, we need to run
with wlroots' x11 backend through xvfb.
Still, it's better than nothing and we will at least get to know whether
Cage builds and can start up, open a window and close. For good measure,
I also threw in Clang's analyses so we'll learn about potential issues
here as well.