[Rust-VMM] rust-vmm CI & container

Samuel Ortiz samuel.ortiz at intel.com
Thu Mar 28 14:03:45 UTC 2019

Hi Andreea,

On Wed, Mar 27, 2019 at 01:10:05PM +0000, Florescu, Andreea wrote:
> Hey,
> I had two follow-ups from our last sync meeting and I finally got some time to write them up.
> 1. CI solution for rust-vmm crates
> The need for a different CI solution (other than Travis) comes from the need of running on bare metal instances for things like performance testing, tests that require access to /dev/kvm, others?
Yes. Access to /dev/kvm is the single requirement.
It can be done on bare metal or on nested virt. Both setups may be
needed for different test cases, and also because we may not get as many
bare metal instances as needed to do parallel CI and e.g. performance
testing at the same time.

> I played a bit with buildkite [1] and I found it pretty easy to use. I did some experiments on my fork of the kvm-ioctls crate. You can find an example of the output here [2]. Some things that would make it a good for our scenario are the following:
> - Integration with GitHub Webhooks. This helps in setting status checks for PRs.
> - The test are run by a buildkite-agent. The agent can be installed on any machine and has support for many distributions. More details about agents here [3]. This is useful because we can have same tests running on different platforms (arm, x86, some other ancient platform that I never heard about before) and different operating systems (linux, windows, mac, others).
> - The tests can be defined through a yaml file [4] so we define the tests once and then we can use them for multiple crates.
> - It is easy to use and has support for organizations & teams. We can create a rust-vmm team on buildkite and multiple people can access and update the CI pipeline.
> - Support for ignoring redundant pushes. If you do 5 pushes to the same branch, Buildkite will only test the last push.
One concern I may have about buildkite is that it's not open source
unlike e.g. Jenkins.
But to be fair, the same could be said about github and possibly
several tools that we're going to use, so that's not a blocker for me.

I like the simplicity and setup ease of buildkite, which are two really
big cons for jenkins imo. Also, the pipeline description file looks
simple and mostly complete for what we'd want to do with it.

So all in all, this looks fine to me.

> 2. Container for rust-vmm dependencies
> I assume that most crates will need the same dependencies for running the tests so I created a container for easy handling of the dependencies.
> I propose to add the container to a rust-vmm repository. More details in the issue [5], please let me know what you think.
Makes sense to me, I commented on the issue.

Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

More information about the Rust-vmm mailing list