Commit Graph

159 Commits

Author SHA1 Message Date
Patrick Roy
3e24835346 ci: add --cfg for cargo doc to disable compile_error!()
Some crates, such as vhost, use compile_error!() to indicate that
mutually exclusive feature have been specified. This leads to problems
when running cargo doc --all-features, which will inevitably trigger
these conditions and then lead to documentation not building (for this
reason, the vhost documentation currently fails to build on docs.rs for
example).

Add a custom cfg that gets passed via RUSTFLAGS in the cargo doc CI step
on whose absense these compile_error!() macros can be gated, so that
they dont cause issues when building documentation in CI

A custom cfg is needed because cargo doc does not pass `--cfg doc` down
to dependencies.

See also rust-vmm/vhost#326

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-02 09:41:40 +01:00
Patrick Roy
58dab8b143 do not use cargo-all-features on riscv64
Due to us running riscv tests in an emulated environment, compiling
multiple permutations of crates is simply too slow and causes buildkite
timeouts. Revert to using --all-features here.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 07:03:33 -04:00
Patrick Roy
55cac8cfe0 fix: convert unittests-gnu to use cargo-all-features
Fixes: 6f7d3656a8 ("ci: convert build and test steps to use cargo-all-features")
Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 07:03:33 -04:00
Patrick Roy
1d02fcc49a ci: run clippy using cargo-all-features
Turns out any cargo subcommand can be ran like this, instead of just the
ones documented on the cargo-all-features crates.io page.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 07:03:33 -04:00
Patrick Roy
6f7d3656a8 ci: convert build and test steps to use cargo-all-features
Ensure that every permutation of feature flags is both build-tested, and
has their unit-tests ran.

The unit-testing part can be reverted to `--all-features` at some point,
once we have made sure that all our cargo features are actually
additive.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 04:47:45 -04:00
Patrick Roy
d82716692f chore: bump container version
pick up container that has cargo-all-features installed.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 04:47:45 -04:00
Patrick Roy
9fbd9f5e83 ci(clippy): drop redundant arguments
--libs --benches and co are already implies by --all-targets.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 04:47:45 -04:00
Patrick Roy
af7504b4cc ci: drop check-warnings test
We already run `cargo build` with `RUSTFlAGS=-Dwarnings`, so also
running `cargo check` with the same arguments, on the same
architectures, and with the same rustflags gains us nothing.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 04:47:45 -04:00
Patrick Roy
5be3429313 ci: add --all-targets to build test
This ensures tests, binaries, benchmarks, examples and libraries are all
build-tested, instead of just the default targets.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 04:47:45 -04:00
Patrick Roy
0496be0a44 fix(ci): pass --workspace to build test
otherwise, on multi-crate workspaces, this test run does precisely
nothing.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-10-01 04:47:45 -04:00
Alyssa Ross
f0de501cab Run cargo doc in CI
Signed-off-by: Alyssa Ross <hi@alyssa.is>
2025-09-30 13:21:03 +02:00
nicholasdezai
c0f5d4c3f5 chore: Update container version to gf26de2f
Update container version to gf26de2f that includes gstreamer

dependencies.

Signed-off-by: nicholasdezai <nicholasdezai@gmail.com>
2025-09-24 11:37:26 +02:00
Matias Ezequiel Vara Larsen
e8117d1504 chore: Update container version to g7e451ea
Update container version to g7e451ea that includes gstreamer
dependencies.

Signed-off-by: Matias Ezequiel Vara Larsen <mvaralar@redhat.com>
2025-09-19 14:51:04 +02:00
Patrick Roy
fc4584d8b8 dependabot: drop open-pull-requests-limit
There seems to be a bug in dependabot where sometimes it refuses to open
PRs due to hitting the pull request limit despite no PRs being open. The
rust-vmm/kvm repository ran into this. To avoid this in the future, drop
the open-pull-requests-limit key, which fixed the issue for
rust-vmm/kvm. In practice, due to us only having a single submodule and
due to cargo updates being grouped, we can only get at most one PR per
ecosystem at a time anyway.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-09-01 09:28:06 -04:00
Stefano Garzarella
0b1cb86353 README: use --workdir in the docker examples
Clean up and standardize our examples by always mounting the crate in
/crate and using --workdir to avoid `cd ..` in the container.

While we're here, let's remove a strange mount of ~/.ssh in the last
example.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2025-08-07 12:33:55 +02:00
Stefano Garzarella
a5d88d4f8f README: use latest container tag in the examples
We recently changed the container tags from vNN to gSHA-1, but we didn't
update README.md. Also, we now push `latest`, which is always updated,
so use this tag in the examples and mention to look at CONTAINER_VERSION
in .buildkite/autogenerate_pipeline.py for a specific version.

Reported-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2025-08-07 12:33:55 +02:00
Wenyu Huang
659de9e3a1 Update container version to g260df6e with lsof installed
Signed-off-by: Wenyu Huang <huangwenyuu@outlook.com>
2025-07-28 07:39:13 +00:00
Wenyu Huang
af54708293 chore: Update container version to gd59baa3
Update container version to gd59baa3 that rust version is 1.87

Signed-off-by: Wenyu Huang <huangwenyuu@outlook.com>
2025-07-11 12:43:19 +02:00
Matias Ezequiel Vara Larsen
aa2f8a90e4 chore: Update container version to g825a7ab
Update container version to g825a7ab that includes kani.

Signed-off-by: Matias Ezequiel Vara Larsen <mvaralar@redhat.com>
2025-06-06 08:30:57 +00:00
Ruoqing He
c3ef897738 chore: Update container version to g492a130
We bumped our `RUST_TOOLCHAIN` from 1.83.0 to 1.85.0 in
rust-vmm/rust-vmm-container#129.

Update to g492a130 dev image to apply this change.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2025-03-24 09:39:47 +00:00
Patrick Roy
3ea2d3fb2e doc: update readme for coverage changes
Mention that `crate_features` is now optional, and also update a very
outdated reference to `cargo kcov`

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-03-19 09:41:19 +00:00
Patrick Roy
e94bff4ff5 coverage: make crate_features key optional
Currently, if a crate wishes to run the coverage test with some cargo
features enabled, it must explicitly list them out in the
`crate_features` key of the coverage json files.

Change this so that if this key is omitted from the json file, then
test_coverage.py passes `--all-features` to cargo.

No functional change, as currently `crate_features` is a mandatory key,
so to opt-in to this new behavior, crates must remove this key from
their coverage json file(s).

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2025-03-19 09:41:19 +00:00
Ruoqing He
8ae03e5c36 chore: Update container version to g82bd1a3
We are missing `rsync` for `seccompiler`. And after bumping to
ubuntu:24.04, some dependencies required by `vhost-devices` could be
installed from ubuntu sources, so @stefano-garzarella reworked the
preparation of `vhost-devices` dependencies in
rust-vmm/rust-vmm-container#128.

Update to g82bd1a3 dev image to apply the changes.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2025-03-07 09:10:48 +01:00
Ruoqing He
f65383cd31 chore: Update container version to gaf9029e
`libc-bin` is broken in previous images which causes problem in
rust-vmm/vhost-device#820.

We ended up upgrading to ubuntu 24:04 to address this.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2025-03-06 11:08:08 +00:00
Ruoqing He
2d733b05f0 chore: Update container version to g538dba3
We have switched to git sha1 tagging since v49. For details, see:
rust-vmm/rust-vmm-container#121.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2025-02-18 16:54:48 +01:00
Egor Lazarchuk
09aef997d8 chore: update container version to v48
Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2024-12-10 10:34:37 +00:00
Egor Lazarchuk
c04433e8d8 feat: add unit tests with --release flag
Rust does optimizations which can cause havoc
in `--release` mode, so add another set of unit tests
with all optimizations enabled.

Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2024-12-09 16:11:39 +01:00
Patrick Roy
1150c47872 fix: report line coverage instead of function coverage
It seems that the raw output of llvm-cov changed at some point, and we
ended upcomparing functoin coverage instead of line coverage. Fix this
by instead using the new json output, which will hopefully prevent such
goofs in the future.

Fixes #170
Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2024-10-23 09:07:13 +00:00
Patrick Roy
212241789d fix: have benchmark test clean working directory
Before checking out different commits, clean the working directory to
avoid checkout failures to to temporary files created during benchmark
execution (as is done by linux-loader)

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2024-10-17 15:32:28 +01:00
Patrick Roy
209c04eb5e run unittests in privileged docker container
The code coverage tests already run in a privileged container, so this
does not affect our security posture. Additionally, it will unblock
vsock unit tests in the vhost-user-vsock crate, see also
https://github.com/rust-vmm/vhost-device/pull/706 and
https://github.com/rust-vmm/vhost-device/pull/728

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2024-10-10 06:24:25 +00:00
Ruoqing He
cdb4a2d5cd update container version to v47
Version v47 [1] incorporates:
- chore: Move RUST_TOOLCHAIN into build_container.sh
- chore: Refactor dialing to reduce useless hints
- riscv64: Set MIN_CORES to 4

[1] rust-vmm/rust-vmm-container#118

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-10-07 11:46:22 +01:00
Ruoqing He
92034f0e36 ci: Enable tests with no platform specified
After `.platform` mechanism was introduced in #159, it silently filters
out tests with no `platform` specified. Enable them to execute by adding
`platform is not None` predicate preceeds allowlist check.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-10-07 06:41:13 +00:00
Ruoqing He
007a40657d update container version to v46
This version [1] incorporates:
- Support of running unit-tests of `linux-loader`, `vm-memory` and etc.
  by mounting `tmpfs` onto `/tmp`
- Improvement on `sshd` inside QEMU VM connectivity test.

[1] rust-vmm/rust-vmm-container#117

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-10-01 06:23:10 +00:00
Stefano Garzarella
438f36e242 github/workflows: run black also on pull requests
It's happening quite often to have CI broken on the main branch
because we only run `black` on merges, to prevent these problems,
let's run `black` or PR as well.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-09-06 11:00:30 +01:00
Stefano Garzarella
4700eac531 autogenerate_pipeline.py: fix formatting issues
The last commit made `black` unhappy.
Let's fix the formatting issues suggested by `black`.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-09-06 11:00:30 +01:00
Ruoqing He
55ee075f85 update container version to v45
This version includes a fix [1] on network problem of riscv64 QEMU VM.

[1] rust-vmm/rust-vmm-container#116

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-09-06 11:51:06 +02:00
Ruoqing He
752ad1322a Introduce riscv64 CI
Introduce logic necessary for generating YAML needed by BuildKite, which
are designed to work with image introduced in
rust-vmm/rust-vmm-container#106.

The container version is updated to v44 to enable CI on RISC-V platform.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
2024-09-02 09:38:45 +02:00
Dorinda Bassey
5e818dc729 update container version to v38
This version includes vhost-device-gpu dependencies
which is required for vhost-device-gpu crate
more info about the crate can be found here:
rust-vmm/vhost-device#668
link to the PR that adds these dependencies
where the tag is generated can be found here:
rust-vmm/rust-vmm-container#110

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-08-09 21:59:36 +01:00
Dorinda Bassey
cec97d9e6c update container version to v37
This version includes vhost-device-gpu dependencies
which is required for vhost-device-gpu crate
more info about the crate can be found here:
rust-vmm/vhost-device#668
link to the PR that adds these dependencies
where the tag is generated can be found here:
rust-vmm/rust-vmm-container#107

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-08-05 08:32:30 +00:00
Dorinda Bassey
9f641f269b update container version to v35
This version includes libepoxy dependencies
which is required for vhost-device-gpu crate
more info about the crate can be found here:
rust-vmm/vhost-device#668
link to the container PR that adds libepoxy
where the tag is generated can be found here:
rust-vmm/rust-vmm-container#103

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2024-07-24 08:41:13 +00:00
Egor Lazarchuk
05038671bb chore: update codeowners
Remove JonathanWoollett-Light.
Add ShadowCurse.

Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2024-06-07 11:04:09 +03:00
Patrick Roy
7606478202 doc: Document process for using dependabot configs
Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2024-02-14 15:17:51 +00:00
Patrick Roy
5f5deb060e Add default dependabot configurations
The intention with these is that crates including rust-vmm-ci as a
submodule will be able to copy either the monthly or weekly schedule to
their repository's .github/dependabot.yml. Sadly, it is not possible to
automatically keep these in-sync with upstream, as dependabot does not
support symlinking the dependabot.yml file into a submodule. However, we
expect updates to be rare enough for this to not be a practical problem.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2024-02-14 15:17:51 +00:00
Egor Lazarchuk
72ebeb393c update container version to v34
This version adds fixes needed for musl-tools
package to properly find linux headers.
More info in https://github.com/rust-vmm/rust-vmm-container/pull/99
and https://github.com/rust-vmm/rust-vmm-container/pull/100

Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2024-01-09 15:09:34 +00:00
Egor Lazarchuk
b31e811bb4 update container version to v32
This version adds minor changes needed
for musl-tools package to properly find
linux headers.

Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2024-01-04 09:34:59 +00:00
Egor Lazarchuk
cd1e502a6e update container version to v31
This version adds musl-tools package
which is required for rust-vmm/vhost#218
to compile userfaultfd crate for musl target.

Signed-off-by: Egor Lazarchuk <yegorlz@amazon.co.uk>
2024-01-03 10:26:58 +00:00
Andreea Florescu
0100de0f57 update container version to v30
This version adds the necessary Rust targets to run tests for
no-std crates.

Signed-off-by: Andreea Florescu <fandree@amazon.com>
2023-11-15 15:16:48 +00:00
Stefano Garzarella
1f5d329419 Update container version to v29
The new version reduces the size of the container by removing
unneeded pipewire dependencies and adds dbus.
This is needed to test vhost-device-sound.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2023-11-14 08:31:53 +00:00
Manos Pitsidianakis
f91cfebb85 README: add link to rust-vmm-container repository
For convenience, since the two are related directly.

Also fix a small typo while at it.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-11-14 08:23:16 +00:00
Stefano Garzarella
cf9809721d test_coverage: calculate the difference in reverse
If we increase the coverage the message prints a negative value
as the difference from the previous value. This can be confusing
as it looks like the coverage has decreased.

For example if the value in coverage_config_x86_64.json is 73.42,
and the new coverage is 73.96 (increased), we have the following
error:

    ValueError: Current code coverage (73.96%) deviates by -0.54%
    from the previous code co...

Let's calculate the difference in reverse so that we have a
negative value if it decreases and positive otherwise.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2023-11-03 15:43:00 +00:00