feat: add `cloudbees-amd64-jenkins-jobs`
This Docker image is designed for the `ci-job-builder` Jenkins job,
which requires a later version of Jenkins Job Builder than is used for
the legacy JJB jobs.
Change-Id: I95e5e99660fbaa074199a8b13a7c2a4a688324d5
Signed-off-by: Chris Kay <chris.kay@arm.com>
diff --git a/cloudbees-amd64-jenkins-jobs/Dockerfile b/cloudbees-amd64-jenkins-jobs/Dockerfile
new file mode 100644
index 0000000..01fa997
--- /dev/null
+++ b/cloudbees-amd64-jenkins-jobs/Dockerfile
@@ -0,0 +1,13 @@
+# syntax=docker/dockerfile:1
+
+FROM trustedfirmware/ci-uv-agent@sha256:acf692bcf0e2bd38e7cac2e0825ea1af7a94f16928735c1a41f5f67177d957e8
+
+ENV PATH="/home/jenkins/.venv/bin:${PATH}"
+
+RUN --mount=type=bind,source=context/requirements.txt,target=/tmp/requirements.txt,ro \
+ --mount=type=bind,source=context/.python-version,target=/tmp/.python-version,ro \
+ --mount=type=cache,target=/home/jenkins/.cache/uv,uid=1000,gid=1000,mode=0775 \
+<<'EOF'
+ uv venv "/home/jenkins/.venv" --python "$(cat "/tmp/.python-version")" --python-preference only-managed
+ uv pip install --requirements "/tmp/requirements.txt"
+EOF
diff --git a/cloudbees-amd64-jenkins-jobs/build.sh b/cloudbees-amd64-jenkins-jobs/build.sh
new file mode 100755
index 0000000..ea85851
--- /dev/null
+++ b/cloudbees-amd64-jenkins-jobs/build.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+export LANG=C
+
+image="trustedfirmware/ci-jenkins-jobs-agent:latest${DOCKER_SUFFIX:-}"
+docker buildx build --tag="${image}" .
+echo "${image}" > .docker-tag
diff --git a/cloudbees-amd64-jenkins-jobs/context/.python-version b/cloudbees-amd64-jenkins-jobs/context/.python-version
new file mode 100644
index 0000000..641602f
--- /dev/null
+++ b/cloudbees-amd64-jenkins-jobs/context/.python-version
@@ -0,0 +1 @@
+3.11.14
diff --git a/cloudbees-amd64-jenkins-jobs/context/requirements.in b/cloudbees-amd64-jenkins-jobs/context/requirements.in
new file mode 100644
index 0000000..8947f6e
--- /dev/null
+++ b/cloudbees-amd64-jenkins-jobs/context/requirements.in
@@ -0,0 +1 @@
+jenkins-job-builder==6.4.3
diff --git a/cloudbees-amd64-jenkins-jobs/context/requirements.txt b/cloudbees-amd64-jenkins-jobs/context/requirements.txt
new file mode 100644
index 0000000..5f85ad8
--- /dev/null
+++ b/cloudbees-amd64-jenkins-jobs/context/requirements.txt
@@ -0,0 +1,40 @@
+# This file was autogenerated by uv via the following command:
+# uv pip compile requirements.in -o requirements.txt
+certifi==2025.11.12
+ # via requests
+charset-normalizer==3.4.4
+ # via requests
+fasteners==0.20
+ # via jenkins-job-builder
+idna==3.11
+ # via requests
+jenkins-job-builder==6.4.3
+ # via -r requirements.in
+jinja2==3.1.6
+ # via jenkins-job-builder
+markupsafe==3.0.3
+ # via jinja2
+multi-key-dict==2.0.3
+ # via python-jenkins
+packaging==25.0
+ # via jenkins-job-builder
+pbr==7.0.3
+ # via
+ # jenkins-job-builder
+ # python-jenkins
+python-jenkins==1.8.3
+ # via jenkins-job-builder
+pyyaml==6.0.3
+ # via jenkins-job-builder
+requests==2.32.5
+ # via python-jenkins
+setuptools==80.9.0
+ # via
+ # jenkins-job-builder
+ # pbr
+six==1.17.0
+ # via jenkins-job-builder
+stevedore==5.6.0
+ # via jenkins-job-builder
+urllib3==2.6.2
+ # via requests