[PATCH v2 2/6] CI: make test-artifacts repo/branch/job customizable

Marek Marczykowski-Górecki posted 6 patches 1 day ago
[PATCH v2 2/6] CI: make test-artifacts repo/branch/job customizable
Posted by Marek Marczykowski-Górecki 1 day ago
Allow choosing which artifacts branch and job to use for Linux. This
allows running the same tests for different Linux versions, without
duplicating a lot of yaml sections.

Similarly, make the repo path itself configurable too. The main purpose
is to ensure the test pipeline triggered from any repo will fetch linux
artifact from the right repo. But with a minor change of using that
variable for rootfs and microcode artifacts too, it allows testing
test-artifacts repo changes without needing to modify gitlab-ci.yml in
xen.git at all.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
I have considered common LINUX_JOB and then add architecture suffix, but
even now X86 and ARM use different jobs, so I made them separate.

Changes in v2:
- make repo path configurable too
- rename LINUX_ARTIFACTS_BRANCH to ARTIFACTS_BRANCH
---
 .gitlab-ci.yml                 | 12 ++++++++++++
 automation/gitlab-ci/test.yaml | 24 ++++++++++++------------
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 64bed300a6c4..2124e3a79eef 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,6 +3,18 @@ variables:
   SELECTED_JOBS_ONLY:
     description: "Regex to select only some jobs, must be enclosed with /. For example /job1|job2/"
     value: "/.*/"
+  ARTIFACTS_REPO:
+    description: "Path to the test-artifacts repo"
+    value: xen-project/hardware/test-artifacts
+  ARTIFACTS_BRANCH:
+    description: "Branch in test-artifacts to use"
+    value: master
+  LINUX_JOB_X86_64:
+    description: "Job name in test-artifacts to use for Linux x86_64"
+    value: linux-6.6.56-x86_64
+  LINUX_JOB_ARM64:
+    description: "Job name in test-artifacts to use for Linux arm64"
+    value: linux-6.6.86-arm64
 
 workflow:
   name: "$CI_PIPELINE_SCHEDULE_DESCRIPTION"
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index e189a774e946..8770c523e228 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -6,27 +6,27 @@
     when: on_success
 
 .arm64-test-needs: &arm64-test-needs
-  - project: xen-project/hardware/test-artifacts
-    job: linux-6.6.86-arm64
-    ref: master
-  - project: xen-project/hardware/test-artifacts
+  - project: $ARTIFACTS_REPO
+    job: $LINUX_JOB_ARM64
+    ref: $ARTIFACTS_BRANCH
+  - project: $ARTIFACTS_REPO
     job: alpine-3.18-arm64-rootfs
-    ref: master
+    ref: $ARTIFACTS_BRANCH
   - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
   - qemu-system-aarch64-6.0.0-arm32-export
 
 .x86-64-test-needs: &x86-64-test-needs
-  - project: xen-project/hardware/test-artifacts
-    job: linux-6.6.56-x86_64
-    ref: master
-  - project: xen-project/hardware/test-artifacts
+  - project: $ARTIFACTS_REPO
+    job: $LINUX_JOB_X86_64
+    ref: $ARTIFACTS_BRANCH
+  - project: $ARTIFACTS_REPO
     job: alpine-3.18-x86_64-rootfs
-    ref: master
-  - project: xen-project/hardware/test-artifacts
+    ref: $ARTIFACTS_BRANCH
+  - project: $ARTIFACTS_REPO
     job: microcode-x86
-    ref: master
+    ref: $ARTIFACTS_BRANCH
 
 .qemu-arm64:
   extends: .test-jobs-common
-- 
git-series 0.9.1