public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Chuck Lever <cel@kernel.org>, Daniel Gomez <da.gomez@kruces.com>,
	kdevops@lists.linux.dev
Cc: Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH 2/8] bootlinux: add support for custom refs on dev kernels on the CLI
Date: Mon, 11 Aug 2025 15:43:01 -0700	[thread overview]
Message-ID: <20250811224307.2218478-3-mcgrof@kernel.org> (raw)
In-Reply-To: <20250811224307.2218478-1-mcgrof@kernel.org>

We already have support to easily test arbitrary kernels and refs by
just using the LINUX_TREE and LINUX_REF environment variables. We
leverage this for our CIs:

  * LINUX_TREE: the target tree     for baseline group (A)
  * LINUX_REF:  the target tree ref the baseline group (A)

Now that we have AB-testing support we want to first add support so that
a simple TEST_AB=y will enable KDEVOPS_BASELINE_AND_DEV and then we want
to be able to customize the target dev tree and ref. We do this with two
other environment variables:

  * LINUX_DEV_TREE: the target tree     for dev group (B)
  * LINUX_DEV_REF:  the target tree ref the dev group (B)

You just need to make sure to also pass TEST_AB=y.

By leveraging this we can easily use AB testing in the future on CIs
to compare and contrast different kernel releases against any target
workload we have.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
 kconfigs/Kconfig.kdevops |  8 +++++++-
 workflows/linux/Kconfig  | 16 ++++++++++++++--
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/kconfigs/Kconfig.kdevops b/kconfigs/Kconfig.kdevops
index c2362adf..431d579a 100644
--- a/kconfigs/Kconfig.kdevops
+++ b/kconfigs/Kconfig.kdevops
@@ -51,6 +51,11 @@ config KDEVOPS_HOSTS_PREFIX_SET_BY_CLI
 	bool
 	default $(shell, scripts/check-cli-set-var.sh KDEVOPS_HOSTS_PREFIX)
 
+config KDEVOPS_BASELINE_AND_DEV_SET_BY_CLI
+	bool
+	output yaml
+	default $(shell, scripts/check-cli-set-var.sh TEST_AB)
+
 config KDEVOPS_HOSTS_PREFIX
 	string "The hostname prefix to use for nodes"
 	output yaml
@@ -78,7 +83,8 @@ config KDEVOPS_CUSTOM_SSH_KEXALGORITHMS
 
 config KDEVOPS_BASELINE_AND_DEV
 	bool "Enable both a baseline and development system per target test"
-	default n
+	default n if !KDEVOPS_BASELINE_AND_DEV_SET_BY_CLI
+	default y if KDEVOPS_BASELINE_AND_DEV_SET_BY_CLI
 	help
 	  By default kdevops will only spawn a baseline target node (local
 	  virtualization or cloud node) for your Linux kernel testing and
diff --git a/workflows/linux/Kconfig b/workflows/linux/Kconfig
index aa7c6ec8..2469ef97 100644
--- a/workflows/linux/Kconfig
+++ b/workflows/linux/Kconfig
@@ -10,6 +10,16 @@ config BOOTLINUX_TREE_REF_SET_BY_CLI
 	output yaml
 	default $(shell, scripts/check-cli-set-var.sh LINUX_TREE_REF)
 
+config BOOTLINUX_DEV_TREE_SET_BY_CLI
+	bool
+	output yaml
+	default $(shell, scripts/check-cli-set-var.sh LINUX_DEV_TREE)
+
+config BOOTLINUX_DEV_TREE_REF_SET_BY_CLI
+	bool
+	output yaml
+	default $(shell, scripts/check-cli-set-var.sh LINUX_DEV_TREE_REF)
+
 config BOOTLINUX_HAS_PURE_IOMAP_CONFIG
 	bool
 
@@ -415,7 +425,8 @@ if BOOTLINUX_AB_DIFFERENT_REF
 config BOOTLINUX_DEV_TREE
 	string "Development kernel tree URL"
 	output yaml
-	default BOOTLINUX_TREE
+	default BOOTLINUX_TREE if !BOOTLINUX_DEV_TREE_SET_BY_CLI
+	default $(shell, ./scripts/append-makefile-vars.sh $(LINUX_DEV_TREE)) if BOOTLINUX_DEV_TREE_SET_BY_CLI
 	help
 	  Git tree URL for the development kernel. If left empty or same
 	  as the baseline tree, the same tree will be used with a different
@@ -424,7 +435,8 @@ config BOOTLINUX_DEV_TREE
 config TARGET_LINUX_DEV_REF
 	string "Development kernel reference"
 	output yaml
-	default $(shell, scripts/infer_last_stable_kernel.sh)
+	default $(shell, scripts/infer_last_stable_kernel.sh) if !BOOTLINUX_DEV_TREE_REF_SET_BY_CLI
+	default $(shell, ./scripts/append-makefile-vars.sh $(LINUX_DEV_TREE_REF)) if BOOTLINUX_DEV_TREE_REF_SET_BY_CLI
 	help
 	  Git reference (branch, tag, or commit) for the development kernel.
 	  This should be different from the baseline reference to enable
-- 
2.47.2


  parent reply	other threads:[~2025-08-11 22:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-11 22:42 [PATCH 0/8] linux-ab enhancements + monitor support Luis Chamberlain
2025-08-11 22:43 ` [PATCH 1/8] bootlinux: use different kernel for A/B testing by default Luis Chamberlain
2025-08-11 22:43 ` Luis Chamberlain [this message]
2025-08-11 22:43 ` [PATCH 3/8] bootlinux: add git ref verification before cloning Luis Chamberlain
2025-08-11 22:43 ` [PATCH 4/8] bootlinux: add git dirty check " Luis Chamberlain
2025-08-11 22:43 ` [PATCH 5/8] bootlinux: add intelligent git repository detection and management Luis Chamberlain
2025-08-11 22:43 ` [PATCH 6/8] bootlinux: enhance A/B testing and repository management Luis Chamberlain
2025-08-11 22:43 ` [PATCH 7/8] fstests: add make target for running tests on all hosts Luis Chamberlain
2025-08-11 22:43 ` [PATCH 8/8] monitoring: integrate monitoring collection into fstests workflow Luis Chamberlain
2025-08-11 22:46   ` Luis Chamberlain
2025-08-12  0:49     ` Luis Chamberlain
2025-08-14  0:59       ` Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250811224307.2218478-3-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=cel@kernel.org \
    --cc=da.gomez@kruces.com \
    --cc=kdevops@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox