Testing/CI/Travis
Travis is a open source continuous integration service which works together with GitHub. When the GitHub mirror is updated (or a pull request generated) Travis will kick of a build across a matrix of configurations. It will also run "make check" on the final build to run our set of unit tests.
Travis is one the many CI build services we use, the current status is bellow:
Current Status
System | Focus | Status |
---|---|---|
GitLab CI | Majority of CI testing (builds x86 & cross), various check targets | https://gitlab.com/qemu-project/qemu/badges/master/pipeline.svg [1] |
Cirrus CI | FreeBSD, MacOS and Windows MSYS2 compile and test | https://api.cirrus-ci.com/github/qemu/qemu.svg [2] |
Travis | non-x86 hosts, mostly deprecated | [3] |
Coverity | Static analysis | https://scan.coverity.com/projects/378/badge.svg?flat=1&foo=qemu.svg [4] |
Patchew | Apply and test patches as they are sent on the mailing list. | https://patchew.org/QEMU/badge.svg [5] |
Documentation | Build the RST portions of the doc/ subtree | https://readthedocs.org/projects/qemu/badge/?version=latest&foo=qemu.svg [6] |
Limitations
The Travis build environment is limited to a few configurations:
- Ubuntu 14.04 Default Trusty Container Image (most builds)
- Ubuntu 14.04 Default Trusty Container Image using Clang (clang-5.0)
- Ubuntu 14.04 Default Trusty Container + ubuntu-toolchain-r-test (gcc 7)
- MacOSX (with brew installed support libs)
As a result it doesn't fully exercise the build system in the way our Buildbot used do. Fortunately patchew fills in the gaps.
Configuration
See the Travis config file
Testing Changes to Travis
- Sign into Travis with your github a/c
- Go to https://travis-ci.org/account/repositories
- You may need to click "Sync Account" to get the list updated
- Flip the switch for your copy of the QEMU repo
- Any new pushes to your repo should kick up the results
- Goto https://travis-ci.org/dashboard to see your builds