All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH test-artifacts v3 00/13] Changes for several CI improvements
@ 2026-03-31 23:21 Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container Marek Marczykowski-Górecki
                   ` (11 more replies)
  0 siblings, 12 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

- Alpine update
- Debian trixie
- test arbitrary linux branch
- Linux stubdom

Technically, the last patch isn't strictly required, but it eases debugging.

In v3 I reordered patches a bit, to move Linux tests earlier.

Example pipeline: https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/pipelines/2422090153

Marek Marczykowski-Górecki (13):
  Add Alpine 3.22 containers
  Switch Linux builds to use Alpine 3.22 container
  Add debian rootfs artifact
  Add linux-6.12.79-x86_64
  Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
  Include git in the ARM64 build container too
  Support building arbitrary Linux branch/tag/commit
  Save Linux config to artifacts too
  Add trigger-test job, to run test on a Linux built from a branch/tag
  Add linux-stubdom dependencies
  Prepare grub for booting x86_64 HVM domU from a disk
  Prepare grub for booting x86_64 HVM domU from a cdrom
  Setup ssh access to test systems

 .gitlab-ci.yml                             | 72 +++++++++++++++--
 containerize                               |  4 +-
 images/alpine/3.18-arm64-build.dockerfile  |  1 +-
 images/alpine/3.22-arm64-base.dockerfile   |  6 +-
 images/alpine/3.22-arm64-build.dockerfile  | 31 +++++++-
 images/alpine/3.22-x86_64-base.dockerfile  |  6 +-
 images/alpine/3.22-x86_64-build.dockerfile | 43 ++++++++++-
 images/debian/13-x86_64-base.dockerfile    |  4 +-
 scripts/alpine-rootfs.sh                   | 25 ++++++-
 scripts/build-linux.sh                     | 24 ++++--
 scripts/debian-rootfs.sh                   | 96 +++++++++++++++++++++++-
 11 files changed, 300 insertions(+), 12 deletions(-)
 create mode 100644 images/alpine/3.22-arm64-base.dockerfile
 create mode 100644 images/alpine/3.22-arm64-build.dockerfile
 create mode 100644 images/alpine/3.22-x86_64-base.dockerfile
 create mode 100644 images/alpine/3.22-x86_64-build.dockerfile
 create mode 100644 images/debian/13-x86_64-base.dockerfile
 create mode 100755 scripts/debian-rootfs.sh

base-commit: 76894a5929bc604fb5bdb4aff2f94a6a9df68cdb
-- 
git-series 0.9.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-04-01  6:46   ` Orzel, Michal
  2026-03-31 23:21 ` [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64 Marek Marczykowski-Górecki
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

Slowly phase out 3.18 one.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 17d25ce0f921..36622c723ce9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,14 +21,14 @@ stages:
   tags:
     - arm64
   variables:
-    CONTAINER: alpine:3.18-arm64-build
+    CONTAINER: alpine:3.22-arm64-build
 
 .x86_64-artifacts:
   extends: .artifacts
   tags:
     - x86_64
   variables:
-    CONTAINER: alpine:3.18-x86_64-build
+    CONTAINER: alpine:3.22-x86_64-build
 
 #
 # ARM64 artifacts
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-04-15 11:56   ` Anthony PERARD
  2026-03-31 23:21 ` [PATCH test-artifacts v3 05/13] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner Marek Marczykowski-Górecki
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

This is necessary for new Zen4 runner.
Do not include Argo module in this build, as it isn't compatible with
6.12 yet.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes in v2:
- update 6.12.34 to 6.12.60, retaining acks
Changes in v3:
- update 6.12.60 to 6.12.79, retaining acks
---
 .gitlab-ci.yml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b23040505bf5..58f7571f5366 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -85,6 +85,10 @@ linux-6.6.56-x86_64:
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
+linux-6.12.60-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh "6.12.60"
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 05/13] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64 Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 06/13] Include git in the ARM64 build container too Marek Marczykowski-Górecki
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

It uses this USB network interface.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
This was posted before at https://lore.kernel.org/xen-devel/20250411203336.585215-1-marmarek@invisiblethingslab.com/
---
 scripts/build-linux.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 441b8721a490..cf0e744bd232 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -32,6 +32,7 @@ case $UNAME in
             | grep 'XEN' \
             | grep '=m' \
             | sed 's/=m/=y/g' >> .config
+        ./scripts/config --enable USB_RTL8152
         ;;
 
     aarch64)
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 06/13] Include git in the ARM64 build container too
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (2 preceding siblings ...)
  2026-03-31 23:21 ` [PATCH test-artifacts v3 05/13] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit Marek Marczykowski-Górecki
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

It will be used for fetching some Linux versions.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 images/alpine/3.18-arm64-build.dockerfile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
index 25a8dbd1090b..38464c950eae 100644
--- a/images/alpine/3.18-arm64-build.dockerfile
+++ b/images/alpine/3.18-arm64-build.dockerfile
@@ -14,6 +14,7 @@ RUN <<EOF
       DEPS=(# Base environment
             build-base
             curl
+            git
 
             # Linux build deps
             bison
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (3 preceding siblings ...)
  2026-03-31 23:21 ` [PATCH test-artifacts v3 06/13] Include git in the ARM64 build container too Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-04-15 13:17   ` Anthony PERARD
  2026-03-31 23:21 ` [PATCH test-artifacts v3 08/13] Save Linux config to artifacts too Marek Marczykowski-Górecki
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

Change how kernel version is given to the script - use arguments, to
avoid confusion between pipeline level variables and job level ones.

The build-linux.sh now can take either just the kernel version (used to be
LINUX_VERSION variable), or git branch/tag/commit name + git URL (new feature).
Go with "git init" + "git fetch" instead of "git clone" to support any
of branch/tag/commit.

This also defines optional linux-git-* jobs which will build the thing
if LINUX_GIT_VERSION and LINUX_GIT_URL variables are provided for the
pipeline.

The idea is to define separate CI schedules for the test-artifacts repo
with LINUX_GIT_URL/LINUX_GIT_VERSION pointing at Linux trees to be
tested (for example linux-next), and then trigger matching pipelines in
the xen repo for testing with that version.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- pass kernel version via script arguments, not variables
---
 .gitlab-ci.yml         | 23 ++++++++++++++++++-----
 scripts/build-linux.sh | 21 ++++++++++++++++-----
 2 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 58f7571f5366..62b2a24e7faf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,9 @@
 variables:
   REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+  LINUX_GIT_VERSION:
+    description: "branch/tag/commit for the linux-git jobs"
+  LINUX_GIT_URL:
+    description: "git url for the linux-git jobs"
 
 stages:
   - build
@@ -49,9 +53,13 @@ alpine-3.22-arm64-rootfs:
 
 linux-6.6.86-arm64:
   extends: .arm64-artifacts
-  script: ./scripts/build-linux.sh
-  variables:
-    LINUX_VERSION: 6.6.86
+  script: ./scripts/build-linux.sh "6.6.86"
+
+linux-git-arm64:
+  extends: .arm64-artifacts
+  script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
 
 #
 # x86_64 artifacts
@@ -79,9 +87,8 @@ debian-13-x86_64-rootfs:
 
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
-  script: ./scripts/build-linux.sh
+  script: ./scripts/build-linux.sh "6.6.56"
   variables:
-    LINUX_VERSION: 6.6.56
     ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
@@ -89,6 +96,12 @@ linux-6.12.60-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh "6.12.60"
 
+linux-git-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh "$LINUX_GIT_VERSION" "$LINUX_GIT_URL"
+  rules:
+  - if: $LINUX_GIT_VERSION && $LINUX_GIT_URL
+
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index cf0e744bd232..882bac2189a6 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -1,5 +1,8 @@
 #!/usr/bin/env bash
 
+LINUX_VERSION="$1"
+LINUX_GIT_URL="$2"
+
 if test -z "${LINUX_VERSION}"
 then
     >&2 echo "LINUX_VERSION must be set"; exit 1
@@ -12,11 +15,19 @@ COPYDIR="${WORKDIR}/binaries"
 UNAME=$(uname -m)
 
 # Build Linux
-MAJOR=${LINUX_VERSION%%.*}
-curl -fsSLO \
-    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
-tar xf linux-"${LINUX_VERSION}".tar.xz
-cd linux-"${LINUX_VERSION}"
+if [[ -n "${LINUX_GIT_URL}" ]]; then
+    mkdir linux
+    cd linux
+    git init
+    git fetch --depth=1 "${LINUX_GIT_URL}" "${LINUX_VERSION}"
+    git checkout FETCH_HEAD
+else
+    MAJOR=${LINUX_VERSION%%.*}
+    curl -fsSLO \
+        https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+    tar xf linux-"${LINUX_VERSION}".tar.xz
+    cd linux-"${LINUX_VERSION}"
+fi
 
 make defconfig
 ./scripts/config --enable BRIDGE
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 08/13] Save Linux config to artifacts too
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (4 preceding siblings ...)
  2026-03-31 23:21 ` [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-03-31 23:21 ` [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag Marek Marczykowski-Górecki
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 scripts/build-linux.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 882bac2189a6..967c63c5effb 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -53,6 +53,8 @@ esac
 
 make olddefconfig
 
+cp .config "${COPYDIR}/linux.config"
+
 case $UNAME in
     x86_64)
         make -j$(nproc) bzImage
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (5 preceding siblings ...)
  2026-03-31 23:21 ` [PATCH test-artifacts v3 08/13] Save Linux config to artifacts too Marek Marczykowski-Górecki
@ 2026-03-31 23:21 ` Marek Marczykowski-Górecki
  2026-04-15 13:44   ` Anthony PERARD
  2026-03-31 23:22 ` [PATCH test-artifacts v3 10/13] Add linux-stubdom dependencies Marek Marczykowski-Górecki
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:21 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

When scheduling pipeline in test-artifacts repo, it can get also
TEST_TRIGGER_REPO and TEST_TRIGGER_BRANCH variables, to trigger relevant
pipeline to test just built artifacts.
Pass ARTIFACTS_REPO+ARTIFACTS_BRANCH to the child pipeline to ensure it
fetches artifacts from the right job.
For example, to build linux-next and test Xen staging on it, the
pipeline could be triggered with:

    LINUX_GIT_URL=https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
    LINUX_GIT_VERSION=master
    TEST_TRIGGER_REPO=xen-project/hardware/xen
    TEST_TRIGGER_BRANCH=staging

The triggered xen test pipeline will skip most build jobs.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 62b2a24e7faf..9d90a8f57ff8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,9 +4,14 @@ variables:
     description: "branch/tag/commit for the linux-git jobs"
   LINUX_GIT_URL:
     description: "git url for the linux-git jobs"
+  TEST_TRIGGER_REPO:
+    description: "gitlab repo on which test just built linux, for example 'xen-project/hardware/xen'"
+  TEST_TRIGGER_BRANCH:
+    description: "branch in TEST_TRIGGER_REPO to test on, for example 'staging'"
 
 stages:
   - build
+  - deploy
 
 .artifacts:
   stage: build
@@ -105,3 +110,18 @@ linux-git-x86_64:
 microcode-x86:
   extends: .x86_64-artifacts
   script: ./scripts/x86-microcode.sh
+
+trigger-test:
+  stage: deploy
+  trigger:
+    project: $TEST_TRIGGER_REPO
+    branch: $TEST_TRIGGER_BRANCH
+    strategy: mirror
+  variables:
+    ARTIFACTS_REPO: $CI_PROJECT_PATH
+    ARTIFACTS_BRANCH: $CI_COMMIT_REF_NAME
+    LINUX_JOB_X86_64: linux-git-x86_64
+    LINUX_JOB_ARM64: linux-git-arm64
+    BUILD_FOR_TESTS_ONLY: 1
+  rules:
+  - if: $TEST_TRIGGER_REPO && $TEST_TRIGGER_BRANCH
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 10/13] Add linux-stubdom dependencies
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (6 preceding siblings ...)
  2026-03-31 23:21 ` [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag Marek Marczykowski-Górecki
@ 2026-03-31 23:22 ` Marek Marczykowski-Górecki
  2026-03-31 23:22 ` [PATCH test-artifacts v3 11/13] Prepare grub for booting x86_64 HVM domU from a disk Marek Marczykowski-Górecki
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:22 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 3cd3ab90697e..2671ab5662f9 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -39,6 +39,10 @@ case $UNAME in
 
             # QEMU
             libelf
+
+            # Stubdomain
+            grub-bios
+            libseccomp
             )
         # libdw used to be part of libelf in Alpine 3.18, but it's a separate
         # package in 3.22.
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 11/13] Prepare grub for booting x86_64 HVM domU from a disk
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (7 preceding siblings ...)
  2026-03-31 23:22 ` [PATCH test-artifacts v3 10/13] Add linux-stubdom dependencies Marek Marczykowski-Górecki
@ 2026-03-31 23:22 ` Marek Marczykowski-Górecki
  2026-03-31 23:22 ` [PATCH test-artifacts v3 12/13] Prepare grub for booting x86_64 HVM domU from a cdrom Marek Marczykowski-Górecki
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:22 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

The stubdomain test will use it

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 2671ab5662f9..18f43e6bcd9e 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -96,5 +96,12 @@ cd /
     echo -ne "dev\0proc\0run\0sys\0"
 } | cpio -0 -R 0:0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
 
+if [ "$UNAME" = "x86_64" ]; then
+    # Prepare boot sector for HVM disk
+    grub-mkimage -o ${COPYDIR}/grub-core.img \
+        -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
+        boot part_msdos ext2 linux biosdisk configfile normal
+fi
+
 # Print the contents for the build log
 zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 12/13] Prepare grub for booting x86_64 HVM domU from a cdrom
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (8 preceding siblings ...)
  2026-03-31 23:22 ` [PATCH test-artifacts v3 11/13] Prepare grub for booting x86_64 HVM domU from a disk Marek Marczykowski-Górecki
@ 2026-03-31 23:22 ` Marek Marczykowski-Górecki
  2026-03-31 23:22 ` [PATCH test-artifacts v3 13/13] Setup ssh access to test systems Marek Marczykowski-Górecki
  2026-04-15 11:50 ` [PATCH test-artifacts v3 03/13] Add debian rootfs artifact Anthony PERARD
  11 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:22 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

The stubdomain test will use it.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 18f43e6bcd9e..f649550d80ab 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -101,6 +101,9 @@ if [ "$UNAME" = "x86_64" ]; then
     grub-mkimage -o ${COPYDIR}/grub-core.img \
         -O i386-pc -p '(hd0,msdos1)/boot/grub2' \
         boot part_msdos ext2 linux biosdisk configfile normal
+    grub-mkimage -o ${COPYDIR}/grub-core-eltorito.img \
+        -O i386-pc-eltorito -p '(cd)/boot/grub2' \
+        boot part_msdos ext2 linux biosdisk configfile normal iso9660
 fi
 
 # Print the contents for the build log
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH test-artifacts v3 13/13] Setup ssh access to test systems
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (9 preceding siblings ...)
  2026-03-31 23:22 ` [PATCH test-artifacts v3 12/13] Prepare grub for booting x86_64 HVM domU from a cdrom Marek Marczykowski-Górecki
@ 2026-03-31 23:22 ` Marek Marczykowski-Górecki
  2026-04-16 14:53   ` Anthony PERARD
  2026-04-15 11:50 ` [PATCH test-artifacts v3 03/13] Add debian rootfs artifact Anthony PERARD
  11 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-03-31 23:22 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné,
	Marek Marczykowski-Górecki

For this add also bridge package, so xenbr0 can be configured with
/etc/network/interfaces.
This allows extracting more logs out of the test system.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes in v2:
- do not allow passwordless login
---
 scripts/alpine-rootfs.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index f649550d80ab..0afae48cfa6b 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -10,6 +10,8 @@ apk --no-cache upgrade
 
 PKGS=(
     # System
+    bridge
+    dropbear
     libgcc
     openrc
     udev
@@ -72,6 +74,7 @@ rc-update add loopback sysinit
 rc-update add bootmisc boot
 rc-update add devfs sysinit
 rc-update add dmesg sysinit
+rc-update add dropbear boot
 rc-update add hostname boot
 rc-update add hwclock boot
 rc-update add hwdrivers sysinit
@@ -84,7 +87,9 @@ echo "ttyS0" >> /etc/securetty
 echo "hvc0" >> /etc/securetty
 echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
 echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
+echo "DROPBEAR_OPTS=\"-R\"" >> /etc/conf.d/dropbear
 echo "rc_verbose=yes" >> /etc/rc.conf
+touch /etc/network/interfaces
 echo > /etc/modules
 passwd -d "root" root
 
-- 
git-series 0.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container
  2026-03-31 23:21 ` [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container Marek Marczykowski-Górecki
@ 2026-04-01  6:46   ` Orzel, Michal
  2026-04-01  6:58     ` Marek Marczykowski-Górecki
  0 siblings, 1 reply; 25+ messages in thread
From: Orzel, Michal @ 2026-04-01  6:46 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki, xen-devel
  Cc: Andrew Cooper, Stefano Stabellini, Roger Pau Monné

Why not 3.23 if it's already there?

~Michal

On 01/04/2026 01:21, Marek Marczykowski-Górecki wrote:
> Slowly phase out 3.18 one.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  .gitlab-ci.yml | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 17d25ce0f921..36622c723ce9 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -21,14 +21,14 @@ stages:
>    tags:
>      - arm64
>    variables:
> -    CONTAINER: alpine:3.18-arm64-build
> +    CONTAINER: alpine:3.22-arm64-build
>  
>  .x86_64-artifacts:
>    extends: .artifacts
>    tags:
>      - x86_64
>    variables:
> -    CONTAINER: alpine:3.18-x86_64-build
> +    CONTAINER: alpine:3.22-x86_64-build
>  
>  #
>  # ARM64 artifacts



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container
  2026-04-01  6:46   ` Orzel, Michal
@ 2026-04-01  6:58     ` Marek Marczykowski-Górecki
  2026-05-03 21:21       ` Marek Marczykowski-Górecki
  0 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-04-01  6:58 UTC (permalink / raw)
  To: Orzel, Michal
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 1225 bytes --]

On Wed, Apr 01, 2026 at 08:46:02AM +0200, Orzel, Michal wrote:
> Why not 3.23 if it's already there?

Because it wasn't yet when I prepared this patch series :)

I can update again and see if any other changes are needed with 3.23.
Other patches are independent of this change.

> 
> ~Michal
> 
> On 01/04/2026 01:21, Marek Marczykowski-Górecki wrote:
> > Slowly phase out 3.18 one.
> > 
> > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> > ---
> >  .gitlab-ci.yml | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 17d25ce0f921..36622c723ce9 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -21,14 +21,14 @@ stages:
> >    tags:
> >      - arm64
> >    variables:
> > -    CONTAINER: alpine:3.18-arm64-build
> > +    CONTAINER: alpine:3.22-arm64-build
> >  
> >  .x86_64-artifacts:
> >    extends: .artifacts
> >    tags:
> >      - x86_64
> >    variables:
> > -    CONTAINER: alpine:3.18-x86_64-build
> > +    CONTAINER: alpine:3.22-x86_64-build
> >  
> >  #
> >  # ARM64 artifacts
> 

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 03/13] Add debian rootfs artifact
  2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
                   ` (10 preceding siblings ...)
  2026-03-31 23:22 ` [PATCH test-artifacts v3 13/13] Setup ssh access to test systems Marek Marczykowski-Górecki
@ 2026-04-15 11:50 ` Anthony PERARD
  2026-04-15 17:59   ` Marek Marczykowski-Górecki
  11 siblings, 1 reply; 25+ messages in thread
From: Anthony PERARD @ 2026-04-15 11:50 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

I'm commenting on changes I found in the branch used by the pipeline
linked in the cover leter, since there's no copy on the mailing list of
the patch :-( (overzealous spam filter).

> diff --git a/scripts/debian-rootfs.sh b/scripts/debian-rootfs.sh
> new file mode 100755
> index 000000000000..7cb8a96e39c0
> --- /dev/null
> +++ b/scripts/debian-rootfs.sh
...
> +PKGS=(
> +    # System
> +    bridge-utils
> +    dropbear
> +    udev
> +    systemd-sysv
> +    iproute2
> +    inetutils-ping
> +    util-linux
> +    cpio

Is `cpio` going to be used in dom0? The alpine rootfs don't have it.

> +# don't need persistent logging, avoid journal flush service
> +rmdir var/log/journal

I think this would better be done with:

    cat >> /etc/systemd/journald.conf.d/storage.conf <<EOF
    [Journal]
    Storage=volatile
    EOF

because I think systemd intend to change the behavior in future release,
and we are more explicit with a config file.

> +# Create rootfs
> +cd /
> +{
> +    PATHS="bin etc home init lib lib64 mnt opt root sbin srv tmp usr var"
> +    find $PATHS -print0
> +    echo -ne "dev\0proc\0run\0sys\0"
> +} | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"

You should add "-R0:0" to the `cpio` command, like we do for the alpine
rootfs.

Thanks,


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64
  2026-03-31 23:21 ` [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64 Marek Marczykowski-Górecki
@ 2026-04-15 11:56   ` Anthony PERARD
  2026-04-15 12:27     ` Marek Marczykowski-Górecki
  0 siblings, 1 reply; 25+ messages in thread
From: Anthony PERARD @ 2026-04-15 11:56 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

On Wed, Apr 01, 2026 at 01:21:54AM +0200, Marek Marczykowski-Górecki wrote:
> +linux-6.12.60-x86_64:
> +  extends: .x86_64-artifacts
> +  script: ./scripts/build-linux.sh "6.12.60"

I've got:
    $ ./scripts/build-linux.sh "6.12.60"
    LINUX_VERSION must be set

Linux version want's to be in a env variable, not an argument.

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64
  2026-04-15 11:56   ` Anthony PERARD
@ 2026-04-15 12:27     ` Marek Marczykowski-Górecki
  0 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-04-15 12:27 UTC (permalink / raw)
  To: Anthony PERARD
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 556 bytes --]

On Wed, Apr 15, 2026 at 11:56:53AM +0000, Anthony PERARD wrote:
> On Wed, Apr 01, 2026 at 01:21:54AM +0200, Marek Marczykowski-Górecki wrote:
> > +linux-6.12.60-x86_64:
> > +  extends: .x86_64-artifacts
> > +  script: ./scripts/build-linux.sh "6.12.60"
> 
> I've got:
>     $ ./scripts/build-linux.sh "6.12.60"
>     LINUX_VERSION must be set
> 
> Linux version want's to be in a env variable, not an argument.

Oh, that's patch ordering, after 07/13 it's in argument.

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit
  2026-03-31 23:21 ` [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit Marek Marczykowski-Górecki
@ 2026-04-15 13:17   ` Anthony PERARD
  0 siblings, 0 replies; 25+ messages in thread
From: Anthony PERARD @ 2026-04-15 13:17 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

On Wed, Apr 01, 2026 at 01:21:57AM +0200, Marek Marczykowski-Górecki wrote:
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 58f7571f5366..62b2a24e7faf 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -49,9 +53,13 @@ alpine-3.22-arm64-rootfs:
>
>  linux-6.6.86-arm64:
>    extends: .arm64-artifacts
> -  script: ./scripts/build-linux.sh
> -  variables:
> -    LINUX_VERSION: 6.6.86
> +  script: ./scripts/build-linux.sh "6.6.86"

Is it crazy to think we could grab the linux version from the job name?
:-D

linux-6.6.86-arm64:
  script:
    - linux_version="$CI_JOB_NAME"
    - linux_version="${linux_version#linux-}"
    - linux_version="${linux_version%%-*}"
    - ./scripts/build-linux.sh "$linux_version"

That would avoid having a job building a version of linux that is
different than the expected one, which can happen easly when duplicating
an existing job for building a new version of linux.

> diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> index cf0e744bd232..882bac2189a6 100755
> --- a/scripts/build-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -1,5 +1,8 @@
>  #!/usr/bin/env bash
>
> +LINUX_VERSION="$1"
> +LINUX_GIT_URL="$2"
> +
>  if test -z "${LINUX_VERSION}"

With LINUX_VERSION been set just before, this test doesn't make sense
anymore, or the error message is wrong.

>  then
>      >&2 echo "LINUX_VERSION must be set"; exit 1

Thanks,


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag
  2026-03-31 23:21 ` [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag Marek Marczykowski-Górecki
@ 2026-04-15 13:44   ` Anthony PERARD
  2026-04-15 17:40     ` Marek Marczykowski-Górecki
  0 siblings, 1 reply; 25+ messages in thread
From: Anthony PERARD @ 2026-04-15 13:44 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

On Wed, Apr 01, 2026 at 01:21:59AM +0200, Marek Marczykowski-Górecki wrote:
> When scheduling pipeline in test-artifacts repo, it can get also
> TEST_TRIGGER_REPO and TEST_TRIGGER_BRANCH variables, to trigger relevant
> pipeline to test just built artifacts.
> Pass ARTIFACTS_REPO+ARTIFACTS_BRANCH to the child pipeline to ensure it
> fetches artifacts from the right job.
> For example, to build linux-next and test Xen staging on it, the
> pipeline could be triggered with:
>
>     LINUX_GIT_URL=https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>     LINUX_GIT_VERSION=master
>     TEST_TRIGGER_REPO=xen-project/hardware/xen
>     TEST_TRIGGER_BRANCH=staging
>
> The triggered xen test pipeline will skip most build jobs.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---

You might want to add that this depends on two patch for the xen repo,
for the trigger to do the expected tests:
    CI: make test-artifacts repo/branch/job customizable
    ci: introduce BUILD_FOR_TESTS_ONLY

> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 62b2a24e7faf..9d90a8f57ff8 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -105,3 +110,18 @@ linux-git-x86_64:
>  microcode-x86:
>    extends: .x86_64-artifacts
>    script: ./scripts/x86-microcode.sh
> +
> +trigger-test:
> +  stage: deploy
> +  trigger:
> +    project: $TEST_TRIGGER_REPO
> +    branch: $TEST_TRIGGER_BRANCH
> +    strategy: mirror
> +  variables:
> +    ARTIFACTS_REPO: $CI_PROJECT_PATH
> +    ARTIFACTS_BRANCH: $CI_COMMIT_REF_NAME
> +    LINUX_JOB_X86_64: linux-git-x86_64
> +    LINUX_JOB_ARM64: linux-git-arm64
> +    BUILD_FOR_TESTS_ONLY: 1

Can we add this?
  inherit:
    variables: false

Otherwise, as I understand, the triggered pipeline will also use the
global variables, like TEST_TRIGGER_REPO, LINUX_GIT_VERSION, ... Or I
could be wrong because we don't set a default value and the are only
manual/scheduled pipeline variable.

https://docs.gitlab.com/ci/yaml/#trigger
> CI/CD variables defined in a top-level variables section (globally) or
> in the trigger job are forwarded to the downstream pipeline as trigger
> variables.

https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#prevent-default-variables-from-being-passed

I'm not sure if the inherit:variables:false is needed, so:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag
  2026-04-15 13:44   ` Anthony PERARD
@ 2026-04-15 17:40     ` Marek Marczykowski-Górecki
  2026-04-22 15:36       ` Anthony PERARD
  0 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-04-15 17:40 UTC (permalink / raw)
  To: Anthony PERARD
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 3104 bytes --]

On Wed, Apr 15, 2026 at 01:44:47PM +0000, Anthony PERARD wrote:
> On Wed, Apr 01, 2026 at 01:21:59AM +0200, Marek Marczykowski-Górecki wrote:
> > When scheduling pipeline in test-artifacts repo, it can get also
> > TEST_TRIGGER_REPO and TEST_TRIGGER_BRANCH variables, to trigger relevant
> > pipeline to test just built artifacts.
> > Pass ARTIFACTS_REPO+ARTIFACTS_BRANCH to the child pipeline to ensure it
> > fetches artifacts from the right job.
> > For example, to build linux-next and test Xen staging on it, the
> > pipeline could be triggered with:
> >
> >     LINUX_GIT_URL=https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> >     LINUX_GIT_VERSION=master
> >     TEST_TRIGGER_REPO=xen-project/hardware/xen
> >     TEST_TRIGGER_BRANCH=staging
> >
> > The triggered xen test pipeline will skip most build jobs.
> >
> > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> > ---
> 
> You might want to add that this depends on two patch for the xen repo,
> for the trigger to do the expected tests:
>     CI: make test-artifacts repo/branch/job customizable
>     ci: introduce BUILD_FOR_TESTS_ONLY
> 
> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 62b2a24e7faf..9d90a8f57ff8 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -105,3 +110,18 @@ linux-git-x86_64:
> >  microcode-x86:
> >    extends: .x86_64-artifacts
> >    script: ./scripts/x86-microcode.sh
> > +
> > +trigger-test:
> > +  stage: deploy
> > +  trigger:
> > +    project: $TEST_TRIGGER_REPO
> > +    branch: $TEST_TRIGGER_BRANCH
> > +    strategy: mirror
> > +  variables:
> > +    ARTIFACTS_REPO: $CI_PROJECT_PATH
> > +    ARTIFACTS_BRANCH: $CI_COMMIT_REF_NAME
> > +    LINUX_JOB_X86_64: linux-git-x86_64
> > +    LINUX_JOB_ARM64: linux-git-arm64
> > +    BUILD_FOR_TESTS_ONLY: 1
> 
> Can we add this?
>   inherit:
>     variables: false
> 
> Otherwise, as I understand, the triggered pipeline will also use the
> global variables, like TEST_TRIGGER_REPO, LINUX_GIT_VERSION, ... Or I
> could be wrong because we don't set a default value and the are only
> manual/scheduled pipeline variable.
> 
> https://docs.gitlab.com/ci/yaml/#trigger
> > CI/CD variables defined in a top-level variables section (globally) or
> > in the trigger job are forwarded to the downstream pipeline as trigger
> > variables.
> 
> https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#prevent-default-variables-from-being-passed

Hm, yes, inherit:variables:false might be needed if we'd want to avoid
passing those variables. But, TBH I'm not sure if we want to avoid that
- it might be useful at some point to get LINUX_GIT_VERSION there, for
example. 

> I'm not sure if the inherit:variables:false is needed, so:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Thanks,
> 
> 
> --
> Anthony Perard | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 
> 

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 03/13] Add debian rootfs artifact
  2026-04-15 11:50 ` [PATCH test-artifacts v3 03/13] Add debian rootfs artifact Anthony PERARD
@ 2026-04-15 17:59   ` Marek Marczykowski-Górecki
  2026-04-27 15:12     ` Anthony PERARD
  0 siblings, 1 reply; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-04-15 17:59 UTC (permalink / raw)
  To: Anthony PERARD
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 3250 bytes --]

On Wed, Apr 15, 2026 at 11:50:38AM +0000, Anthony PERARD wrote:
> I'm commenting on changes I found in the branch used by the pipeline
> linked in the cover leter, since there's no copy on the mailing list of
> the patch :-( (overzealous spam filter).
> 
> > diff --git a/scripts/debian-rootfs.sh b/scripts/debian-rootfs.sh
> > new file mode 100755
> > index 000000000000..7cb8a96e39c0
> > --- /dev/null
> > +++ b/scripts/debian-rootfs.sh
> ...
> > +PKGS=(
> > +    # System
> > +    bridge-utils
> > +    dropbear
> > +    udev
> > +    systemd-sysv
> > +    iproute2
> > +    inetutils-ping
> > +    util-linux
> > +    cpio
> 
> Is `cpio` going to be used in dom0? The alpine rootfs don't have it.

Alpine does have it, via busybox. That said, I don't see it used in any
current test.

> > +# don't need persistent logging, avoid journal flush service
> > +rmdir var/log/journal
> 
> I think this would better be done with:
> 
>     cat >> /etc/systemd/journald.conf.d/storage.conf <<EOF
>     [Journal]
>     Storage=volatile
>     EOF
> 
> because I think systemd intend to change the behavior in future release,
> and we are more explicit with a config file.

+1 

> > +# Create rootfs
> > +cd /
> > +{
> > +    PATHS="bin etc home init lib lib64 mnt opt root sbin srv tmp usr var"
> > +    find $PATHS -print0
> > +    echo -ne "dev\0proc\0run\0sys\0"
> > +} | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
> 
> You should add "-R0:0" to the `cpio` command, like we do for the alpine
> rootfs.

Hm, I'm not sure if that's a good idea. There are a few intentionally
non-root files in Debian. Right now that is:

-rw-r-----   1 root     42            496 Apr  1 01:08 etc/gshadow
-rw-r-----   1 root     42            564 Apr  1 01:08 etc/shadow
-rw-r-----   1 root     42            444 Apr  1 01:08 etc/gshadow-
-rw-r-----   1 root     42            565 Apr  1 01:08 etc/shadow-
-rwxr-sr-x   1 root     42          31256 Apr 19  2025 usr/bin/expiry
-rwxr-sr-x   1 root     42         113848 Apr 19  2025 usr/bin/chage
-rwsr-xr--   1 root     printadm    51272 Mar  8  2025 usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwxr-sr-x   1 root     42          43256 Jun 29  2025 usr/sbin/unix_chkpwd
drwxr-xr-x   2 systemd- systemd-        0 Apr  1 01:08 var/lib/systemd/network
drwxr-xr-x   2 42       root            0 Apr  1 01:07 var/lib/apt/lists/auxfiles
drwx------   2 42       root            0 Apr  1 01:07 var/lib/apt/lists/partial
drwxrwsr-x   2 root     mem             0 Sep  8  2025 var/mail
-rw-rw-r--   1 root     43              0 Sep  8  2025 var/log/wtmp
-rw-rw-r--   1 root     43              0 Sep  8  2025 var/log/lastlog
-rw-rw----   1 root     43              0 Sep  8  2025 var/log/btmp
-rw-r-----   1 root     adm         31508 Apr  1 01:08 var/log/apt/term.log
drwx------   2 42       root            0 Apr  1 01:08 var/cache/apt/archives/partial

While it _might_ not explode right now if we reset it to root, it may
cause issues in the future (for example APT likes to run downloads as
unprivileged user, with write access only to
/var/lib/apt/lists/partial).

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 13/13] Setup ssh access to test systems
  2026-03-31 23:22 ` [PATCH test-artifacts v3 13/13] Setup ssh access to test systems Marek Marczykowski-Górecki
@ 2026-04-16 14:53   ` Anthony PERARD
  0 siblings, 0 replies; 25+ messages in thread
From: Anthony PERARD @ 2026-04-16 14:53 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

On Wed, Apr 01, 2026 at 01:22:03AM +0200, Marek Marczykowski-Górecki wrote:
> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> index f649550d80ab..0afae48cfa6b 100755
> --- a/scripts/alpine-rootfs.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -72,6 +74,7 @@ rc-update add loopback sysinit
>  rc-update add bootmisc boot
>  rc-update add devfs sysinit
>  rc-update add dmesg sysinit
> +rc-update add dropbear boot
>  rc-update add hostname boot
>  rc-update add hwclock boot
>  rc-update add hwdrivers sysinit
> @@ -84,7 +87,9 @@ echo "ttyS0" >> /etc/securetty
>  echo "hvc0" >> /etc/securetty
>  echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
>  echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
> +echo "DROPBEAR_OPTS=\"-R\"" >> /etc/conf.d/dropbear

Is this useful somehow? Because the service that start dropbear will
generate the ssh_host keys before starting dropbear.

>  echo "rc_verbose=yes" >> /etc/rc.conf
> +touch /etc/network/interfaces

That the kind of command that I don't understand what it is for on a
first look ...
But looks like it just to allow the "networking" service to start
without error if the test didn't configure networking via this file. A
comment would be nice, here or in the commit message.

Thanks,


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag
  2026-04-15 17:40     ` Marek Marczykowski-Górecki
@ 2026-04-22 15:36       ` Anthony PERARD
  0 siblings, 0 replies; 25+ messages in thread
From: Anthony PERARD @ 2026-04-22 15:36 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 2891 bytes --]

On Wed, Apr 15, 2026 at 07:40:19PM +0200, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 15, 2026 at 01:44:47PM +0000, Anthony PERARD wrote:
> > On Wed, Apr 01, 2026 at 01:21:59AM +0200, Marek Marczykowski-Górecki wrote:
> > > +trigger-test:
> > > +  stage: deploy
> > > +  trigger:
> > > +    project: $TEST_TRIGGER_REPO
> > > +    branch: $TEST_TRIGGER_BRANCH
> > > +    strategy: mirror
> > > +  variables:
> > > +    ARTIFACTS_REPO: $CI_PROJECT_PATH
> > > +    ARTIFACTS_BRANCH: $CI_COMMIT_REF_NAME
> > > +    LINUX_JOB_X86_64: linux-git-x86_64
> > > +    LINUX_JOB_ARM64: linux-git-arm64
> > > +    BUILD_FOR_TESTS_ONLY: 1
> > 
> > Can we add this?
> >   inherit:
> >     variables: false
> > 
> > Otherwise, as I understand, the triggered pipeline will also use the
> > global variables, like TEST_TRIGGER_REPO, LINUX_GIT_VERSION, ... Or I
> > could be wrong because we don't set a default value and the are only
> > manual/scheduled pipeline variable.
> > 
> > https://docs.gitlab.com/ci/yaml/#trigger
> > > CI/CD variables defined in a top-level variables section (globally) or
> > > in the trigger job are forwarded to the downstream pipeline as trigger
> > > variables.
> > 
> > https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#prevent-default-variables-from-being-passed
> 
> Hm, yes, inherit:variables:false might be needed if we'd want to avoid
> passing those variables. But, TBH I'm not sure if we want to avoid that
> - it might be useful at some point to get LINUX_GIT_VERSION there, for
> example. 

I've run a test and I don't see LINUX_GIT_VERSION value in the
trigger pipeline, only the default value.

See https://gitlab.com/xen-project/people/anthonyper/xen/-/jobs/14042314690/viewer

    $ echo triggered by ${LINUX_GIT_URL} and ${LINUX_GIT_VERSION};
    triggered by and
    $ env
    REGISTRY=registry.gitlab.com/xen-project/people/anthonyper/test-artifacts
    XEN_REGISTRY=registry.gitlab.com/xen-project/xen
    LINUX_GIT_VERSION=
    LINUX_GIT_URL=
    TEST_TRIGGER_REPO=
    TEST_TRIGGER_BRANCH=
    ARTIFACTS_REPO=xen-project/people/anthonyper/test-artifacts
    LINUX_JOB_X86_64=linux-git-x86_64
    ...

So, the triggered pipeline got the value of the variable as set in
`.gitlab-ci.yml` `variables` section, and the values of the variables
set in the trigger job. But the value set via push-variable are missing.
So far, the triggered pipeline doesn't get the useful variable values,
beside the needed ones. And my main issue would be with the REGISTRY or
XEN_REGISTRY variables, if we rename one into the other, the triggered
pipeline could fail.

So I think we should use inherit:variables:false, and explicitly
passthrough the variables we want.

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 03/13] Add debian rootfs artifact
  2026-04-15 17:59   ` Marek Marczykowski-Górecki
@ 2026-04-27 15:12     ` Anthony PERARD
  0 siblings, 0 replies; 25+ messages in thread
From: Anthony PERARD @ 2026-04-27 15:12 UTC (permalink / raw)
  To: Marek Marczykowski-Górecki
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 3919 bytes --]

On Wed, Apr 15, 2026 at 07:59:34PM +0200, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 15, 2026 at 11:50:38AM +0000, Anthony PERARD wrote:
> > > diff --git a/scripts/debian-rootfs.sh b/scripts/debian-rootfs.sh
> > > new file mode 100755
> > > index 000000000000..7cb8a96e39c0
> > > --- /dev/null
> > > +++ b/scripts/debian-rootfs.sh
> > ...
> > > +PKGS=(
> > > +    # System
> > > +    bridge-utils
> > > +    dropbear
> > > +    udev
> > > +    systemd-sysv
> > > +    iproute2
> > > +    inetutils-ping
> > > +    util-linux
> > > +    cpio
> > 
> > Is `cpio` going to be used in dom0? The alpine rootfs don't have it.
> 
> Alpine does have it, via busybox. That said, I don't see it used in any
> current test.

Turns out I'm actually using `cpio` on the Alpine rootfs. But the only
reason is to work around a very slow download of the rootfs via the UEFI
firmware (and grub) of the machine. I just boot with a smaller rootfs,
then after Linux is started, I download the rootfs that only has the
xentool and extract it with `cpio`. (loading the full rootfs over
netboot takes about 15min on that machine)

> > > +# don't need persistent logging, avoid journal flush service
> > > +rmdir var/log/journal
> > 
> > I think this would better be done with:
> > 
> >     cat >> /etc/systemd/journald.conf.d/storage.conf <<EOF
> >     [Journal]
> >     Storage=volatile
> >     EOF
> > 
> > because I think systemd intend to change the behavior in future release,
> > and we are more explicit with a config file.
> 
> +1 
> 
> > > +# Create rootfs
> > > +cd /
> > > +{
> > > +    PATHS="bin etc home init lib lib64 mnt opt root sbin srv tmp usr var"
> > > +    find $PATHS -print0
> > > +    echo -ne "dev\0proc\0run\0sys\0"
> > > +} | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
> > 
> > You should add "-R0:0" to the `cpio` command, like we do for the alpine
> > rootfs.
> 
> Hm, I'm not sure if that's a good idea. There are a few intentionally
> non-root files in Debian. Right now that is:
> 
> -rw-r-----   1 root     42            496 Apr  1 01:08 etc/gshadow
> -rw-r-----   1 root     42            564 Apr  1 01:08 etc/shadow
> -rw-r-----   1 root     42            444 Apr  1 01:08 etc/gshadow-
> -rw-r-----   1 root     42            565 Apr  1 01:08 etc/shadow-
> -rwxr-sr-x   1 root     42          31256 Apr 19  2025 usr/bin/expiry
> -rwxr-sr-x   1 root     42         113848 Apr 19  2025 usr/bin/chage
> -rwsr-xr--   1 root     printadm    51272 Mar  8  2025 usr/lib/dbus-1.0/dbus-daemon-launch-helper
> -rwxr-sr-x   1 root     42          43256 Jun 29  2025 usr/sbin/unix_chkpwd
> drwxr-xr-x   2 systemd- systemd-        0 Apr  1 01:08 var/lib/systemd/network
> drwxr-xr-x   2 42       root            0 Apr  1 01:07 var/lib/apt/lists/auxfiles
> drwx------   2 42       root            0 Apr  1 01:07 var/lib/apt/lists/partial
> drwxrwsr-x   2 root     mem             0 Sep  8  2025 var/mail
> -rw-rw-r--   1 root     43              0 Sep  8  2025 var/log/wtmp
> -rw-rw-r--   1 root     43              0 Sep  8  2025 var/log/lastlog
> -rw-rw----   1 root     43              0 Sep  8  2025 var/log/btmp
> -rw-r-----   1 root     adm         31508 Apr  1 01:08 var/log/apt/term.log
> drwx------   2 42       root            0 Apr  1 01:08 var/cache/apt/archives/partial
> 
> While it _might_ not explode right now if we reset it to root, it may
> cause issues in the future (for example APT likes to run downloads as
> unprivileged user, with write access only to
> /var/lib/apt/lists/partial).

Ah, right, "-R0:0" probably only make sense when we build Xen as a build
user.

So, with the change to journald config:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Cheers,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container
  2026-04-01  6:58     ` Marek Marczykowski-Górecki
@ 2026-05-03 21:21       ` Marek Marczykowski-Górecki
  0 siblings, 0 replies; 25+ messages in thread
From: Marek Marczykowski-Górecki @ 2026-05-03 21:21 UTC (permalink / raw)
  To: Orzel, Michal
  Cc: xen-devel, Andrew Cooper, Stefano Stabellini,
	Roger Pau Monné

[-- Attachment #1: Type: text/plain, Size: 782 bytes --]

On Wed, Apr 01, 2026 at 08:58:04AM +0200, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 01, 2026 at 08:46:02AM +0200, Orzel, Michal wrote:
> > Why not 3.23 if it's already there?
> 
> Because it wasn't yet when I prepared this patch series :)
> 
> I can update again and see if any other changes are needed with 3.23.
> Other patches are independent of this change.

So, Linux 6.6.56 fails to build there:
https://gitlab.com/xen-project/people/marmarek/test-artifacts/-/jobs/14191260643

This is fixed in Linux 6.6.95, but I can't just drop 6.6.56 as stable
branches still use it. Alternatively, I could keep this one building on
Alpine 3.18, as it needs to stay anyway for the same reason.

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2026-05-03 21:21 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-31 23:21 [PATCH test-artifacts v3 00/13] Changes for several CI improvements Marek Marczykowski-Górecki
2026-03-31 23:21 ` [PATCH test-artifacts v3 02/13] Switch Linux builds to use Alpine 3.22 container Marek Marczykowski-Górecki
2026-04-01  6:46   ` Orzel, Michal
2026-04-01  6:58     ` Marek Marczykowski-Górecki
2026-05-03 21:21       ` Marek Marczykowski-Górecki
2026-03-31 23:21 ` [PATCH test-artifacts v3 04/13] Add linux-6.12.79-x86_64 Marek Marczykowski-Górecki
2026-04-15 11:56   ` Anthony PERARD
2026-04-15 12:27     ` Marek Marczykowski-Górecki
2026-03-31 23:21 ` [PATCH test-artifacts v3 05/13] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner Marek Marczykowski-Górecki
2026-03-31 23:21 ` [PATCH test-artifacts v3 06/13] Include git in the ARM64 build container too Marek Marczykowski-Górecki
2026-03-31 23:21 ` [PATCH test-artifacts v3 07/13] Support building arbitrary Linux branch/tag/commit Marek Marczykowski-Górecki
2026-04-15 13:17   ` Anthony PERARD
2026-03-31 23:21 ` [PATCH test-artifacts v3 08/13] Save Linux config to artifacts too Marek Marczykowski-Górecki
2026-03-31 23:21 ` [PATCH test-artifacts v3 09/13] Add trigger-test job, to run test on a Linux built from a branch/tag Marek Marczykowski-Górecki
2026-04-15 13:44   ` Anthony PERARD
2026-04-15 17:40     ` Marek Marczykowski-Górecki
2026-04-22 15:36       ` Anthony PERARD
2026-03-31 23:22 ` [PATCH test-artifacts v3 10/13] Add linux-stubdom dependencies Marek Marczykowski-Górecki
2026-03-31 23:22 ` [PATCH test-artifacts v3 11/13] Prepare grub for booting x86_64 HVM domU from a disk Marek Marczykowski-Górecki
2026-03-31 23:22 ` [PATCH test-artifacts v3 12/13] Prepare grub for booting x86_64 HVM domU from a cdrom Marek Marczykowski-Górecki
2026-03-31 23:22 ` [PATCH test-artifacts v3 13/13] Setup ssh access to test systems Marek Marczykowski-Górecki
2026-04-16 14:53   ` Anthony PERARD
2026-04-15 11:50 ` [PATCH test-artifacts v3 03/13] Add debian rootfs artifact Anthony PERARD
2026-04-15 17:59   ` Marek Marczykowski-Górecki
2026-04-27 15:12     ` Anthony PERARD

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.