aboutsummaryrefslogtreecommitdiffci
path: root/Jenkinsfile
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
authorGravatar Saya Andy <saya.andy@posteo.com> 2026-09-07 04:50:59 +0700
committerGravatar Saya Andy <saya.andy@posteo.com> 2026-09-07 04:50:59 +0700
commit49428abac50976f943806aa2b116597328148ddc (patch)
treee0d8a2d5fb1aa758738551345fd3c8c6d0d67fb3 /Jenkinsfile
parent1075e725492e482d826bfcf222e6f2f6644f5d4b (diff)
downloadkiwi-descriptions-49428abac50976f943806aa2b116597328148ddc.tar.gz
kiwi-descriptions-49428abac50976f943806aa2b116597328148ddc.zip
DRAFT: feat: use kernel tailored for surface pro 12-inch
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile74
1 files changed, 68 insertions, 6 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
index 24aa17a..0797a5f 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -11,6 +11,20 @@ pipeline {
IMAGE_PROFILE = 'Workstation-Live'
IMAGE_VERSION = '45'
OUTPUT_DIR = 'outdir'
+
+ B2_ENDPOINT = 'https://s3.eu-central-003.backblazeb2.com'
+ AWS_DEFAULT_REGION = 'eu-central-003'
+ RPM_BUCKET = 'dist-sayagit-fedora-rpm'
+ ISO_BUCKET = 'dist-sayagit-fedora-iso'
+
+ // awscli2 sends CRC32 checksums by default, which B2 rejects. Ask for
+ // them only where the S3 API requires them.
+ AWS_REQUEST_CHECKSUM_CALCULATION = 'when_required'
+ AWS_RESPONSE_CHECKSUM_VALIDATION = 'when_required'
+
+ // Must match the <source path="dir://..."/> in
+ // repositories/kernel-surface.xml.
+ KERNEL_SURFACE_REPO = '/var/lib/kernel-surface-repo'
}
stages {
@@ -51,6 +65,41 @@ spec:
container('kiwi') {
script {
try {
+ // The kernel-surface RPM is a build input, not
+ // something this repository can produce: the image
+ // installs kernel-surface by name and <ignore>s
+ // Fedora's kernel packages, so it has to be in the
+ // local repository before kiwi starts. The buckets
+ // stay private, so it is pulled with credentials
+ // rather than fetched over a public URL.
+ withCredentials([usernamePassword(
+ credentialsId: 'backblaze-b2-dist-rpm',
+ usernameVariable: 'AWS_ACCESS_KEY_ID',
+ passwordVariable: 'AWS_SECRET_ACCESS_KEY')]) {
+ sh '''
+ set -eux
+
+ dnf --assumeyes install awscli2 createrepo_c
+
+ mkdir -p "${KERNEL_SURFACE_REPO}"
+ aws s3 sync --endpoint-url "${B2_ENDPOINT}" \\
+ "s3://${RPM_BUCKET}/fedora/${IMAGE_VERSION}/aarch64/" \\
+ "${KERNEL_SURFACE_REPO}/" \\
+ --exclude '*' --include 'kernel-surface-*.rpm'
+
+ # Say so here rather than letting kiwi fail
+ # several minutes later on an unresolvable
+ # package name.
+ if ! ls "${KERNEL_SURFACE_REPO}"/kernel-surface-*.rpm; then
+ echo "No kernel-surface RPM in ${RPM_BUCKET} for Fedora ${IMAGE_VERSION}." >&2
+ echo "Run the kernel-surface pipeline first." >&2
+ exit 1
+ fi
+
+ createrepo_c "${KERNEL_SURFACE_REPO}"
+ '''
+ }
+
sh '''
dnf --assumeyes install git kiwi kiwi-systemdeps distribution-gpg-keys
git config --global --add safe.directory .
@@ -102,12 +151,25 @@ spec:
steps {
container('s5cmd') {
unstash "fedora-workstation-live-iso-stash"
- sh '''
- cd ${OUTPUT_DIR}-build
- moddate=$(date -r Fedora.aarch64-${IMAGE_VERSION}.iso -u +"%Y%m%d-%H%M%S")
- mv Fedora.aarch64-${IMAGE_VERSION}.iso "Fedora.Surface-Pro-12in.${IMAGE_PROFILE}.${IMAGE_VERSION}.${moddate}.aarch64.iso"
- ls -lh
- '''
+ withCredentials([usernamePassword(
+ credentialsId: 'backblaze-b2-dist-iso',
+ usernameVariable: 'AWS_ACCESS_KEY_ID',
+ passwordVariable: 'AWS_SECRET_ACCESS_KEY')]) {
+ sh '''
+ set -eux
+
+ cd "${OUTPUT_DIR}-build"
+ src="Fedora.aarch64-${IMAGE_VERSION}.iso"
+ moddate=$(date -r "${src}" -u +"%Y%m%d-%H%M%S")
+ dst="Fedora.Surface-Pro-12in.${IMAGE_PROFILE}.${IMAGE_VERSION}.${moddate}.aarch64.iso"
+ mv "${src}" "${dst}"
+ ls -lh
+
+ s5cmd --endpoint-url "${B2_ENDPOINT}" cp \\
+ "${dst}" \\
+ "s3://${ISO_BUCKET}/fedora/${IMAGE_VERSION}/aarch64/${dst}"
+ '''
+ }
}
}
}