We now check whether the test defines if_changed and crate_path before
using the ones from the workspace. If the tests does define these two,
then we don't overwrite them with the default workspace configuration.
This is needed so that custom pipelines for tests can specify as if
changed the crate that they're intended to. Without this change we
end up running the custom tests for all crates that are changed instead
of running it just for the crate that they're intended.
Signed-off-by: Andreea Florescu <andreea.florescu15@gmail.com>
Running the full pipeline for every change in a Cargo workspace
retests crates a pull request never touched. Add a
`--workspace-selective` parameter that, when set to `True`, emits one
step per workspace member tagged with Buildkite's native `if_changed`
property, so each crate's shared crate-scoped tests only run when
files in that crate (or in a workspace-global path) change. Workspace
members are discovered by parsing the workspace's `Cargo.toml` directly
so the script does not need `cargo` on the host. The shared test
description is supplied via `-t`; a crate may extend it with its own
`.buildkite/test_description.json`, whose tests run only when files in
that crate change.
Signed-off-by: Ruoqing He <ruoqing.he@lingcage.com>
New `black` is complaining about reformatting some of our files,
let's make it happy:
$ black . --check
would reformat rust-vmm-ci/test_run.py
would reformat rust-vmm-ci/integration_tests/conftest.py
would reformat rust-vmm-ci/.buildkite/autogenerate_pipeline.py
Oh no! 💥💔💥
3 files would be reformatted, 5 files would be left unchanged.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
cargo-audit 0.22 is the first version that can parse cvss 4.0 scores
and avoid the following error in our pipelines:
$ cargo audit -q --deny warnings
error: error loading advisory database: parse error: TOML parse error at line 8, column 8
|
8 | cvss = "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unsupported CVSS version: 4.0
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Update container version to g6300e70 which has SBI_V01 enabled during
kernel compilation for according RISC-V test cases.
Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
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>
`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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
This new version contains alsa and pipewire libraries to build
vhost-device-sound audio backends.
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
This version contains an updated rust toolchain (1.68.2 -> 1.69.0), as
well as the miri component for the nightly toolchain.
Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
This revision contains critcmp and cargo-audit on ARM again, after the
previous revision was lacking them due to an OOM at container build
time.
Closes#123
Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
That updates to a newer version of Rust, 1.68.2, and adds back
libclang-dev package which is required by vhost-device/gpio crates.
An earlier version, v20, is skipped here as we missed updating
rust-vmm-ci along with it. v20 updated documentation and triggered
builds for changes in build_container.sh.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
There should be no changes required in the crates. The only
difference is in the libgpio library, as we're using a release
and not a certain commit on the main branch.
This is the first container built with the automation, and in
the process we had to do some significant cleanup to remove
things that were not needed. Hopefully this will not trigger
any errors in the CIs.
Signed-off-by: Andreea Florescu <fandree@amazon.com>
This container version updates the Rust version to 1.67.1, the base
Ubuntu image to 22.04 (which is the newest that still works with
kcov), and adds the gpio library needed by the vhost-device tests.
Signed-off-by: Andreea Florescu <fandree@amazon.com>
By default we are now using the kvm hypervisor in tests.
This can be overritten for the entire pipeline at the pipeline
level by using the environment variable `AGENT_TAG_HYPERVISOR`.
Fixes: https://github.com/rust-vmm/rust-vmm-ci/issues/115
Signed-off-by: Andreea Florescu <fandree@amazon.com>
Without this fix, yml is generated wrongly like below:
steps:
- label: coverage-x86_64
command: pytest $(find . -type f -name "test_coverage.py")
retry:
automatic: false
agents:
os: linux
platform: x86_64.metal
hypervisor: mshv
plugins:
- docker#v3.8.0:
image: rustvmm/dev:v16
always-pull: true
privileged: true
timeout_in_minutes: 5
hypervisor: mshv // This is now right
Signed-off-by: Muminul Islam <muislam@microsoft.com>
In order to support Microsoft Hypervisor, this tag is used
to identify agents that has MSHV support
Signed-off-by: Muminul Islam <muislam@microsoft.com>
This is needed so we can have separate queues for tests that require
special instances. For example, running performance tests require
nothing else to run at the same time.
Signed-off-by: Andreea Florescu <fandree@amazon.com>