This is based0 on @seanmonstar’s
kcov. It works because Travis’s
apt addon has
everything necessary. Unfortunately, it does require these to be
installed explicitly, which seems to be something
do itself: they seem to have to be explicitly listed in the manifest.
1 2 3 4 5 6 addons: apt: packages: - libcurl4-openssl-dev - libelf-dev - libdw-dev
This allows leveraging Travis’ container-based infrastructure, with all its benefits, especially around speed and latency. If you switch1, you can check that your builds are using it by looking for the following paragraph in the build-logs:
1 2 3 This job is running on container-based infrastructure, which does not allow use of 'sudo', setuid and setguid executables. If you require sudo, add 'sudo: required' to your .travis.yml See http://docs.travis-ci.com/user/workers/container-based-infrastructure/ for details.
--no-sudo is opt-in because it’d be a breaking change to do anything
else, and because adding
sudo: required is simpler than the whole
addons: apt: ... thing.