From 934fd4e6d157e7b76e1eb3658eabbf78f24caf1f Mon Sep 17 00:00:00 2001 From: Gleb Chesnokov Date: Tue, 25 Aug 2026 12:42:43 +0300 Subject: [PATCH] scripts: Add kernel versions to RPM bundle names Use normalized RPM matrix kernel versions in rolling snapshot archive names. Keep vendor suffixes in package metadata and leave Ubuntu DKMS independent of the runner kernel. --- scripts/prepare-package-release | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/scripts/prepare-package-release b/scripts/prepare-package-release index 48896c73a..735ccd7f3 100755 --- a/scripts/prepare-package-release +++ b/scripts/prepare-package-release @@ -17,14 +17,35 @@ readonly release_output_dir="${RELEASE_OUTPUT_DIR}" [[ "${GITHUB_SHA}" =~ ^[0-9a-fA-F]{40,64}$ ]] || die "GITHUB_SHA is not a full Git object ID." -jq -e '.include | type == "array" and length > 0' \ +jq -e ' + .include | + type == "array" and length > 0 and + all(.[]; + ((.target | type) == "string" and (.target | length) > 0) and + ((.kernel_version | type) == "string" and + (.kernel_version | length) > 0)) +' \ <<<"${RPM_MATRIX}" >/dev/null || die "RPM_MATRIX is invalid." mapfile -t rpm_targets < <(jq -r '.include[].target' <<<"${RPM_MATRIX}") +mapfile -t rpm_kernel_versions < <( + jq -r '.include[].kernel_version' <<<"${RPM_MATRIX}" +) +[[ ${#rpm_targets[@]} -eq ${#rpm_kernel_versions[@]} ]] || + die "RPM_MATRIX contains invalid target or kernel version fields." + +rpm_archive_kernel_versions=() declare -A seen_targets=() -for target in "${rpm_targets[@]}"; do +for index in "${!rpm_targets[@]}"; do + target="${rpm_targets[index]}" + kernel_version="${rpm_kernel_versions[index]}" [[ "${target}" =~ ^[a-z0-9][a-z0-9._-]*$ ]] || die "Invalid RPM target: ${target}" + [[ "${kernel_version}" =~ ^[A-Za-z0-9][A-Za-z0-9._+-]*$ ]] || + die "Invalid RPM kernel version: ${kernel_version}" + [[ "${kernel_version}" =~ ^(.+)\.el[0-9]+(_[0-9]+|uek)?$ ]] || + die "Unsupported RPM kernel version: ${kernel_version}" + rpm_archive_kernel_versions[index]="${BASH_REMATCH[1]}" [[ -z "${seen_targets[${target}]+present}" ]] || die "Duplicate RPM target: ${target}" seen_targets["${target}"]=1 @@ -53,7 +74,9 @@ create_bundle() { ) } -for target in "${rpm_targets[@]}"; do +for index in "${!rpm_targets[@]}"; do + target="${rpm_targets[index]}" + archive_kernel_version="${rpm_archive_kernel_versions[index]}" artifact_name="scst-rpm-${target}-x86_64-${GITHUB_SHA}" artifact_dir="${rpm_artifact_root}/${artifact_name}" [[ -d "${artifact_dir}/RPMS" ]] || @@ -72,7 +95,7 @@ for target in "${rpm_targets[@]}"; do ) || die "RPM checksum verification failed for ${artifact_name}." create_bundle "${artifact_dir}" \ - "scst-master-${target}-x86_64.tar.gz" \ + "scst-master-${target}-kernel-${archive_kernel_version}-x86_64.tar.gz" \ RPMS SRPMS SHA256SUMS done