[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v1 08/13] CI: enable on-demand XTF on qubes runners


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: dmukhin@xxxxxxxx
  • Date: Wed, 4 Nov 2026 17:36:56 -0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=ford.com; dkim=pass (signature was verified) header.d=saarlouis.ford.com; dkim=pass (signature was verified) header.d=ford.com; arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hiWGmLd5gN5t6oIVVRWaRZVSnc3B8aqJqB2CNlBTkxo=; b=UA6jKtRo9jUyhCmYdEuw9qJiZlMUC+wOG2qzdEkhrSa3rS+o/dyjBNQMBMGim97eeIaPooGQWFKwdeO0YaL+NlSb1iDU0ekPyFgeuR6v/TbbdCnOpiPlpbUMOvaRE84KBx9qUvcJq71wrEdC+KiRR76p6a7tcDw/OR2WvfEbWnXri9/9ifWoAx4smIzRKQtMRwzHfD/qpQmaAhE6bJKoFm/XDcdNuoipj44wbyE0GKXAMpjQvysXnSfXLnDQ+ZiKIizbUwPB9UpFNZVE6xgmh4y5HBIbFoPJQk0nk9Jjy+1WdjrdX5CFEPwCe4x8nOnK+7DAnPMhZK80Lt2AMjLIzA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RsQtRySCOXfttOyQXiWwkKF+3OgBkMznpuBSxRL+kFSfoPPaDDmpPhwtbbXRsaNI+4NgYEmzen6s35RL1chqj/H01DH+Ubm3V4iS75fA+rzkxCmEmGyQJOmIuzm4ahNrF4a5rsjrv2uSYqXecqABSQ/dH08xkeyocglWWbyq9Q5R5fPWWrJUmzDijYuJOs199UgXahDIC29EE1NGzybN4SoEYGX+yo3qfgqn0L3zO2XocGb97et24fmUnoxcRZ82qVKAQZKJgZ2626KO6Lv41kqJNIc/0ZaJkL73GUNOufF8C7+V437PH0GWK6Op7Xf2Nz6tl5hXMBt9/SGbSglnWQ==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=ppford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector2-azureford-onmicrosoft-com header.d=azureford.onmicrosoft.com header.i="@azureford.onmicrosoft.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=ppserprodsaar header.d=saarlouis.ford.com header.i="@saarlouis.ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=ppfserpocford header.d=ford.com header.i="@ford.com" header.h="Cc:Content-Transfer-Encoding:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"
  • Cc: andrew.cooper3@xxxxxxxxxx, anthony.perard@xxxxxxxxxx, jbeulich@xxxxxxxx, julien@xxxxxxx, michal.orzel@xxxxxxx, roger@xxxxxxxxxxxxxx, sstabellini@xxxxxxxxxx, dmukhin@xxxxxxx, Denis Mukhin <dmukhin@xxxxxxxx>
  • Delivery-date: Thu, 05 Nov 2026 01:37:36 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Pser-m365-app: SER-APP

From: Denis Mukhin <dmukhin@xxxxxxxx>

Currently, public CI infra has no job to run an XTF on the hardware
runner.

This change enables running XTFs on hardware runners on demand, such
as test job on a development branch.

Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
---
 automation/gitlab-ci/test.yaml              |  2 +
 automation/scripts/include/xtf/qubes-hw1    |  1 +
 automation/scripts/include/xtf/qubes-hw11   |  1 +
 automation/scripts/include/xtf/qubes-hw2    |  1 +
 automation/scripts/include/xtf/qubes-hw22   |  1 +
 automation/scripts/include/xtf/qubes-hw3    |  1 +
 automation/scripts/include/xtf/qubes-x86_64 | 54 +++++++++++++++++++++
 7 files changed, 61 insertions(+)
 create mode 120000 automation/scripts/include/xtf/qubes-hw1
 create mode 120000 automation/scripts/include/xtf/qubes-hw11
 create mode 120000 automation/scripts/include/xtf/qubes-hw2
 create mode 120000 automation/scripts/include/xtf/qubes-hw22
 create mode 120000 automation/scripts/include/xtf/qubes-hw3
 create mode 100644 automation/scripts/include/xtf/qubes-x86_64

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 9ca93842dfe7..4d7d5e3d9a11 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -244,6 +244,7 @@
     PCIDEV_INTR: "MSI-X"
     XEN_CONSOLE: "console=com1 com1=115200,8n1,pci,msi,04:00.0"
     SUT_ADDR: test-1.testnet
+    XTF_TARGET: qubes-hw1
   tags:
     - qubes-hw1
 
@@ -255,6 +256,7 @@
     PCIDEV_INTR: "MSI-X"
     XEN_CONSOLE: "console=com1 com1=115200,8n1,pci,msi"
     SUT_ADDR: test-11.testnet
+    XTF_TARGET: qubes-hw11
   tags:
     - qubes-hw11
 
diff --git a/automation/scripts/include/xtf/qubes-hw1 
b/automation/scripts/include/xtf/qubes-hw1
new file mode 120000
index 000000000000..c6b7de7308b6
--- /dev/null
+++ b/automation/scripts/include/xtf/qubes-hw1
@@ -0,0 +1 @@
+qubes-x86_64
\ No newline at end of file
diff --git a/automation/scripts/include/xtf/qubes-hw11 
b/automation/scripts/include/xtf/qubes-hw11
new file mode 120000
index 000000000000..c6b7de7308b6
--- /dev/null
+++ b/automation/scripts/include/xtf/qubes-hw11
@@ -0,0 +1 @@
+qubes-x86_64
\ No newline at end of file
diff --git a/automation/scripts/include/xtf/qubes-hw2 
b/automation/scripts/include/xtf/qubes-hw2
new file mode 120000
index 000000000000..c6b7de7308b6
--- /dev/null
+++ b/automation/scripts/include/xtf/qubes-hw2
@@ -0,0 +1 @@
+qubes-x86_64
\ No newline at end of file
diff --git a/automation/scripts/include/xtf/qubes-hw22 
b/automation/scripts/include/xtf/qubes-hw22
new file mode 120000
index 000000000000..c6b7de7308b6
--- /dev/null
+++ b/automation/scripts/include/xtf/qubes-hw22
@@ -0,0 +1 @@
+qubes-x86_64
\ No newline at end of file
diff --git a/automation/scripts/include/xtf/qubes-hw3 
b/automation/scripts/include/xtf/qubes-hw3
new file mode 120000
index 000000000000..c6b7de7308b6
--- /dev/null
+++ b/automation/scripts/include/xtf/qubes-hw3
@@ -0,0 +1 @@
+qubes-x86_64
\ No newline at end of file
diff --git a/automation/scripts/include/xtf/qubes-x86_64 
b/automation/scripts/include/xtf/qubes-x86_64
new file mode 100644
index 000000000000..d183dd33e4af
--- /dev/null
+++ b/automation/scripts/include/xtf/qubes-x86_64
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# XTF test utilities (qubes-* hardware x86_64 runners).
+#
+
+# Target-specific environment overrides.
+function xtf_init()
+{
+    export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen}"
+
+    XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all guest_loglvl=all dom0_mem=4G 
console_timestamps=boot}"
+    export EXTRA_XEN_CMDLINE="${XEN_CMDLINE} ${XEN_CONSOLE}"
+
+    export TFTP="/scratch/gitlab-runner/tftp"
+    export CONTROLLER="control@thor.testnet"
+}
+
+# Perform target-specific XTF environment setup.
+function xtf_setup_host()
+{
+    cat > "$TFTP/grub.cfg" <<EOF
+serial --port=auto --speed=115200 --word=8 --parity=no --stop=1
+terminal_input serial
+terminal_output serial
+
+insmod multiboot2
+
+echo Loading Xen...
+multiboot2 (http)/gitlab-ci/xen $XEN_CMDLINE
+
+echo Loading XTF...
+module2 (http)/gitlab-ci/xtf
+
+echo Booting Xen...
+boot
+    EOF
+
+    cat > $TFTP/boot.ipxe <<EOF
+#!ipxe
+kernel /gitlab-ci/xen $XEN_CMDLINE || reboot
+module /gitlab-ci/xtf || reboot
+boot
+EOF
+
+    cp ${XEN_BINARY} $TFTP/xen
+    cp ${XTF_BINARY} $TFTP/xtf
+
+    export TEST_CMD="ssh $CONTROLLER console"
+
+    trap "ssh $CONTROLLER poweroff" EXIT
+
+    # Boot the system
+    ssh $CONTROLLER gitlabci poweron
+}
-- 
2.55.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.