65 Commits

Author SHA1 Message Date
Andreea Florescu
bfca469deb allow tests to define if_changed and crate_path
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>
2026-07-09 14:30:54 +03:00
Ruoqing He
1a24a830be ci: Enable per-crate selective pipeline generation
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>
2026-06-30 15:17:36 +02:00
Albert Esteve
2601a12663 Update container version to g2b5b066 with libswscale-dev
Signed-off-by: Albert Esteve <aesteve@redhat.com>
2026-05-21 14:35:36 +02:00
Albert Esteve
3da0e5f852 Update container version to gace8da2 with media dependencies
Signed-off-by: Albert Esteve <aesteve@redhat.com>
2026-05-04 11:56:12 +02:00
Stefano Garzarella
94e2492e36 chore: fix formatting issues
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>
2026-03-01 13:03:41 +01:00
Stefano Garzarella
65d339dde5 Update container version that includes cargo-audit 0.22
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>
2026-01-07 13:07:57 +01:00
Patrick Roy
b4bb7687a1 chore: bump container version
pick up the toolchain update

Signed-off-by: Patrick Roy <patrick.roy@linux.dev>
2025-11-03 12:03:36 +00:00
Dorinda Bassey
042b2063b2 chore: Update container version to gcb2de9d
Update container version to gcb2de9d which has
virglrenderer updated version.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-10-22 17:34:29 +02:00
Ruoqing He
c41370cfc8 chore: Update container version to g6300e70
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>
2025-10-13 13:45:54 +02: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
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
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
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
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
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
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
Stefano Garzarella
0b9e2e28ba Update container version to v28
This new version contains alsa and pipewire libraries to build
vhost-device-sound audio backends.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2023-10-23 09:11:46 +02:00
Patrick Roy
2148c043a0 Update container version to 26
Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2023-09-01 10:21:56 +00:00
Jonathan Woollett-Light
56bfdc97bb test: Format with black
Signed-off-by: Jonathan Woollett-Light <jcawl@amazon.co.uk>
2023-06-16 11:46:25 +01:00
Patrick Roy
285971e8c7 Update container version to 24
v24 contains the rust-src component which miri requires.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
2023-05-23 12:01:47 +02:00
Patrick Roy
0beb66692d Update container version to v23
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>
2023-05-22 11:40:10 +03:00
Patrick Roy
8627b3766b Update container to v22
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>
2023-04-13 13:40:51 +02:00
Viresh Kumar
7ffe41abf0 update to container v21
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>
2023-04-05 10:17:12 +02:00
Andreea Florescu
3f9869f285 update to container v19
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>
2023-03-28 18:07:47 +08:00
Andreea Florescu
c2f8c93e37 update container version to v18
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>
2023-02-13 12:37:31 +02:00
Andreea Florescu
607c775dde update container to v17
This new version pulls the latest available Rust version (1.66.1)

Signed-off-by: Andreea Florescu <fandree@amazon.com>
2023-01-11 14:40:37 +02:00
Andreea Florescu
aa33f19d6b temporarily increase the timeout to 15 mins
We need to increase the timeout for each test to 15 minutes because we
are experiencing timeouts when running the tests. I think this might be
actually related to the hosts running the CI, because some early
investigations by aghecen@amazon.com show that the threads are blocked
on doing epoll_wait. This is odly similar to the issue discussed here
related to epoll: https://lore.kernel.org/all/Y1pY2n6E1Xa58MXv@kroah.com/

For more details, check: https://github.com/rust-vmm/community/issues/137

Signed-off-by: Andreea Florescu <fandree@amazon.com>
2022-11-30 17:38:29 +02:00
Andreea Florescu
45443cc21e add hypervisor tag for agents
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>
2022-11-30 17:38:29 +02:00
Andreea Florescu
e8c8fc32b0 update docker plugin
We were using a rather outdated version. Moving to the latest available
one.

Signed-off-by: Andreea Florescu <fandree@amazon.com>
2022-11-30 17:38:29 +02:00
Muminul Islam
4cb208e71e .buildkite: add hypervisor to special_keys
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>
2022-11-24 14:38:23 +08:00
Muminul Islam
3e1f6fc125 autogenerate_pipeline: Add hypervisor tag
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>
2022-11-18 11:48:08 +02:00
Andreea Florescu
7af2e16d91 add support for specifying the agent queue
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>
2022-10-26 11:14:59 +03:00