Commit Graph

92 Commits

Author SHA1 Message Date
Rob Bradford
f4e1b72477 build: Consolidate integration testing to reused built assets
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 09:42:07 +00:00
Rob Bradford
65628e8d94 build: Run linter over Jenkinsfile
This has resulted in the content being indented with spaces rather tabs
per Groovy coding style.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 09:42:07 +00:00
Rob Bradford
fdb4b32876 build: Disable SGX build
This was unfortunately missing from
430bfd38be which disabled the other builds
that rely on the bare metal systems.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-20 21:59:03 +01:00
Rob Bradford
430bfd38be build: Disable VFIO, metrics and rate limit testing
Bare metal x86-64 systems are offline

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-20 11:55:43 +01:00
Rob Bradford
5aab82ccd2 Jenkinsfile: Move slack alert to new channel
This avoids spamming #general

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-09-15 10:19:56 +01:00
Bo Chen
c8fe101b6f Jenkinsfile: Add CI worker for rate limiter tests
Given rate limiter tests are performance related, they need to be tested
on a bare-metal machine. It is now using the same node as the metrics CI.

Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-09-14 15:01:43 +01:00
Sebastien Boeuf
180251f057 Jenkinsfile: Re-enable x86-64 bare metal testing
The baremetal CI for x86-64 was disabled while the machines were out for
maintenance. Now that the machines are back up, let's re-enable the full
CI.

This reverts commit 476e30f5cb.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-09-07 09:32:03 +01:00
Rob Bradford
476e30f5cb Jenkinsfile: Temporarily remove x86-64 bare metal testing
These machines will be temporarily unavailable.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-08-17 11:18:47 -07:00
Anatol Belski
944d09208e ci: Initial Windows image integration
This enables the Windows test module. One basic test is enabled,
while all others are disabled yet for aarch64. Jenkins file is
extended with the corresponding step for aarch64.

installAzureCli() is parametrized.

It seems that transferring a 30GB image would take >= 15 minutes. An
optimization here is having a gzip'ed image to 10GB which would unpack
in 3 minutes. Expect to be quicker than transferring an uncompressed
image while on another network.

Signed-off-by: Anatol Belski <ab@php.net>
2022-08-12 15:04:06 +01:00
Sebastien Boeuf
103494f441 tests: Improve live migration tests reliability
Move the live migration tests to a 'jammy' worker rather than
'jammy-small'. This type of worker has more CPUs (64 vs 16) and more RAM
(256G vs 64G), which should improve the time it takes to run each test.
With this improvement, the test shouldn't fail anymore due to timeout
being reached.

A second improvement is to reduce the amount of vCPUs created for each
VM. The point is simply to check we can migrate a VM with multiple
vCPUs, therefore using 2 instead of 6 should be enough when possible.
When testing NUMA, we can't lower the amount of vCPUs since there's a
quite complex topology that is expected there.
Also, the total amount of vCPUs is reduced from 12 to 4 (again when not
testing with NUMA).

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-08-03 10:42:45 -07:00
Rob Bradford
df10dab952 build: Skip running Jenkins if fuzzer only changes
There is no point in wasting resources building use Jenkins if the
change only modifies the fuzzers.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-07-27 18:12:56 +01:00
Rob Bradford
f8f0b40e94 build: Move Jenkins workers over to jammy
Fixes: #3862

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-07-26 14:53:49 +01:00
Rob Bradford
64b4b7205e Revert "build: Temporarily disable VFIO, SGX and metrics build steps"
This reverts commit d96614fe42.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-06-09 10:30:07 +01:00
Jinank Jain
3a18860326 Reapply "Jenkinsfile: Bypass running CI for fuzzer Cargo file changes"
This reverts commit 0d0013c46e.

Grovvy shell script execution engine does not like backslash as the
escape character. So we need to put another backslash to escape the
backslash character. This would most likely fix the issue that we saw
with the CI.

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
2022-06-07 07:40:33 +01:00
Rob Bradford
0d0013c46e Revert "Jenkinsfile: Bypass running CI for fuzzer Cargo file changes"
This reverts commit 86d243938e.

Build error:

Obtained Jenkinsfile from 86d243938e
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 311: unexpected char: '\' @ line 311, column 88.
   _TARGET}... | grep -v -E 'fuzz\/Cargo.(t

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-06-06 15:38:18 +01:00
Jinank Jain
86d243938e Jenkinsfile: Bypass running CI for fuzzer Cargo file changes
In order to conserve resources it is better to not run CI, whenever there
are changes only in fuzz/Cargo.toml or fuzz/Cargo.lock.

Fixes #4148

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
2022-06-06 15:29:19 +01:00
Rob Bradford
d96614fe42 build: Temporarily disable VFIO, SGX and metrics build steps
These require machines that are currently offline.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-05-23 11:14:01 +01:00
Sebastien Boeuf
78fb98a609 Jenkinsfile: Prepare CI environment for vDPA
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-03-18 12:28:40 +01:00
Rob Bradford
65bebabd70 build: Move Jenkins workers to focal
hirsute is EOLed and focal is receiving kernel updates on Azure.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-03-16 14:15:18 +01:00
Michael Zhao
8d11ba4833 Jenkinsfile: Test musl target on AArch64
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2022-03-02 14:12:29 +00:00
Rob Bradford
b869e65e7e Jenkinsfile: Remove filter to run all metrics
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-25 16:28:27 +00:00
Rob Bradford
04bfb3d93e Jenkinsfile: Fix whitespace issues
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-25 16:28:27 +00:00
Rob Bradford
e7a0d6b4e4 build: Run metrics and upload results
For now only generate the boot time related tests as the full metrics
test suite needs some more time to bed in.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-02-25 08:54:40 +00:00
Sebastien Boeuf
c325aa3297 Jenkinsfile: Filter out pull requests containing only documentation
No need to run the Jenkins CI on pull request for which exclusively
markdown files have been modified.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-02-10 14:48:30 +00:00
Sebastien Boeuf
db5d74cb26 Jenkinsfile: Remove unnecessary environment variables
Since AZURE_CONNECTION_STRING is only useful for the Windows build,
let's remove it from other builds where it's not invoked.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-02-10 14:48:30 +00:00
Rob Bradford
35d3c1f611 build: Switch base to hirsute as an experiment
As an experiment switch back to hirsute to see if the CI failure /
timeout rate decreases.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-12-12 11:09:32 +00:00
Rob Bradford
eea2907daf build: Use OVMF binary released from edk2 repo
Fixes: #3415

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-12-07 10:34:05 +01:00
Sebastien Boeuf
cab0b3446f tests: Test OVMF with Linux guest
Extending the test_simple_launch() integration test to validate Cloud
Hypervisor boots correctly with both rust-hypervisor-fw and OVMF on
x86_64 platforms.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-12-04 23:04:32 +01:00
Sebastien Boeuf
9b0fe505ca ci: Update the OVMF version the tests rely on
Bumping the OVMF binary version along with UEFI documentation to
reflect the latest set of patches on top of tianocore/edk2 'master'
branch, which can be found on the Cloud Hypervisor fork on 'ch' branch.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-12-04 23:04:32 +01:00
Rob Bradford
b519975fc8 build: Use Ubuntu impish (21.10) for workers
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-12-03 17:45:39 +01:00
Bo Chen
a181b77bc8 ci: Add integration test for live migration with OVS-DPDK
Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-09-10 07:41:15 +01:00
Rob Bradford
df3b20f472 Revert "build: Temporarily disable baremetal testing"
This reverts commit d475b953b8.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-09-03 16:32:14 +01:00
Bo Chen
7b80709595 build: Add Jenkinsfile entry for live-migration integration tests
Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-09-02 14:57:31 +01:00
Rob Bradford
d475b953b8 build: Temporarily disable baremetal testing
The system has gone offline.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-09-02 09:32:52 +01:00
Rob Bradford
760031103e build: Update CI infrastructure for "master" -> "main" rename
Also remove obsolete Travis build status from the README.md.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-24 14:56:45 +01:00
Rob Bradford
b347e192d3 Jenkinsfile: Update to new Jenkins terminology
The Jenkins master is now known as the controller and the agent it provides is
called "built-in".

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-23 09:22:05 -07:00
Sebastien Boeuf
c93b7037b4 Jenkinsfile: Update the way to download private images
Since we ran into issues while using the Azure credentials plugin for
Jenkins, let's rely directly on the Azure CLI to download the Windows
guest image along with the modified OVMF firmware.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-06-21 19:20:37 +02:00
Rob Bradford
fb2e8b6817 Jenkins: Migrate workers to Hirsute Hippo
Groovy is EOLed on 2021-07-22.

Fixes: #2769

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-06-18 11:44:56 +02:00
Sebastien Boeuf
4db7530f28 ci: Add OVS-DPDK integration test
In order to avoid regression regarding OVS-DPDK support, a new
integration test is added. This test consists of running two VMs, both
attached to a distinct OVS port, where both ports are connected to an
OVS bridge. Once the VM are running, the test validates the connection
between the two VMs works correctly.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-06-01 12:17:23 +02:00
Sebastien Boeuf
1f94208090 Jenkinsfile: Don't wait for a node that is not being used
Since SGX and VFIO tests don't need to be run on pull requests, we
should not have to wait for the corresponding node (bionic-sgx or
bionic-vfio) to become available in order to skip them.

Fixes #2607

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-05-07 11:56:36 +01:00
Sebastien Boeuf
0a00df2e7e tests: Dynamically assign IPs for Windows integration tests
Relying on dnsmasq running on the host, the Windows guest are now
getting allocated with the expected IP addresses. This allows for
multiple VMs, therefore multiple tests to run in parallel.

The end goal is to reduce the time spent running Windows integration
tests.

Fixes #1891

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-05-06 17:27:33 +02:00
Sebastien Boeuf
04dc496808 ci: Enable baremetal VFIO integration tests
Relying on a NVIDIA Tesla T4 card present in the SGX machine, this patch
enables baremetal VFIO testing, validated by running several NVIDIA
tools in the guest. The guest image has been prepared to include all the
software needed to run these tests.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-03-16 18:59:46 +00:00
Sebastien Boeuf
d65a0b68b9 Revert "Jenkinsfile: Temporarily disable SGX CI"
This reverts commit 526cf32a78.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-03-05 19:02:30 +01:00
Sebastien Boeuf
526cf32a78 Jenkinsfile: Temporarily disable SGX CI
Since the SGX server is down for maintenance, all builds are waiting on
the node agent to answer, causing all PRs to be blocked.

Let's disable temporarily the SGX CI until the server is back up.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-03-03 09:56:05 +00:00
Rob Bradford
99baee8d37 tests: Move Windows integration test to updated OVMF
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-03-01 22:11:19 +00:00
Sebastien Boeuf
b49c7dfd65 ci: Always download the Windows image
Because we're back on transient builder, let's download the image
everytime.

This reverts commit b5653d5278.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-01-08 17:18:28 +00:00
Rob Bradford
8f740f5c02 Jenkinsfile: Disable fast failing
Temporarily disable fast failing to try and make progress on CI
stabilisation to allow more test coverage.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-01-08 12:24:33 +00:00
Rob Bradford
b5653d5278 Jenkinsfile: Don't download the Windows images
They are already provisioned on the builder machine.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-01-07 17:31:02 +00:00
Rob Bradford
05f785fa88 build: Move timeouts to integration test blocks
If we rely on timeouts at the top level we can get builds being aborted
simply because they took too long to be scheduled rather than because
the actual integration tests took too long.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-11-27 19:18:39 +01:00
Rob Bradford
8bd3fdea8f build: Move on-demand workers from bionic to groovy
This is an interim step to be able to test io_uring on our CI system.

See: #1561

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-10-26 14:27:20 -07:00