X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=scripts%2Flttng-modules%2Fmaster.groovy;h=92fb0c355755e384e4ba7609aaf908008f050116;hb=1e65ccd9789590c93a8181ee4d2683e131cd0a20;hp=3ce6f9a723dfeea033586e1be909fdc39afe9932;hpb=b6ebf05e2d64e5a86e3a5aec32f60c40feb95402;p=lttng-ci.git diff --git a/scripts/lttng-modules/master.groovy b/scripts/lttng-modules/master.groovy index 3ce6f9a..92fb0c3 100644 --- a/scripts/lttng-modules/master.groovy +++ b/scripts/lttng-modules/master.groovy @@ -163,6 +163,120 @@ class VanillaKVersion implements Comparable { } } +class SlesKVersion implements Comparable { + Integer major = 0 + Integer minor = 0 + Integer patch = 0 + Integer slesrelease = 0 + Integer slesmajor = 0 + Integer slesminor = 0 + + SlesKVersion() {} + + SlesKVersion(version) { + this.parse(version) + } + + static SlesKVersion minKVersion() { + return new SlesKVersion("rpm-0.0.0-0.0.0") + } + + static SlesKVersion maxKVersion() { + return new SlesKVersion("rpm-" + Integer.MAX_VALUE + ".0.0-0.0.0") + } + + static SlesKVersion factory(version) { + return new SlesKVersion(version) + } + + def parse(version) { + this.major = 0 + this.minor = 0 + this.patch = 0 + this.slesrelease = 0 + this.slesmajor = 0 + this.slesminor = 0 + + if (!version) { + throw new EmptyKVersionException("Empty kernel version") + } + + // Eg. 5.14.21-150400.22 + // Eg. 5.14.21-150400.24.100.2 + // From tag: rpm-5.14.21-150400.24.100 -> 5.14.21-150400.24.100 + def match = version =~ /^(rpm-)??(\d+)\.(\d+)\.(\d+)-(\d+)\.(\d+)(\.\d+)??$/ + if (!match) { + throw new InvalidKVersionException("Invalid kernel version: ${version}") + } + + this.major = Integer.parseInt(match.group(2)) + this.minor = Integer.parseInt(match.group(3)) + this.patch = Integer.parseInt(match.group(4)) + this.slesrelease = Integer.parseInt(match.group(5)) + this.slesmajor = Integer.parseInt(match.group(6)) + + if (match.group(7) != null) { + this.slesminor = Integer.parseInt(match.group(7).drop(1)) + } + } + + Boolean isRC() { + return false + } + + Boolean isSameStable(SlesKVersion o) { + if (this.major != o.major) { + return false + } + if (this.minor != o.minor) { + return false + } + if (this.patch != o.patch) { + return false + } + if (this.slesrelease != o.slesrelease) { + return false + } + if (this.slesmajor != o.slesmajor) { + return false + } + if (this.slesminor != o.slesminor) { + return false + } + return true + } + + @Override int compareTo(SlesKVersion o) { + if (this.major != o.major) { + return Integer.compare(this.major, o.major) + } + if (this.minor != o.minor) { + return Integer.compare(this.minor, o.minor) + } + if (this.patch != o.patch) { + return Integer.compare(this.patch, o.patch) + } + if (this.slesrelease != o.slesrelease) { + return Integer.compare(this.slesrelease, o.slesrelease) + } + if (this.slesmajor != o.slesmajor) { + return Integer.compare(this.slesmajor, o.slesmajor) + } + if (this.slesminor != o.slesminor) { + return Integer.compare(this.slesminor, o.slesminor) + } + return 0 + } + + String toString() { + String vString = "rpm-${this.major}.${this.minor}.${patch}-${this.slesrelease}.${this.slesmajor}" + if (this.slesminor != 0) { + vString = vString.concat(".${this.slesminor}") + } + return vString + } +} + class UbuntuKVersion implements Comparable { Integer major = 0 @@ -316,6 +430,7 @@ def kverfloor_raw = build.buildVariableResolver.resolve('kverfloor') def kverceil_raw = build.buildVariableResolver.resolve('kverceil') def kverfilter = build.buildVariableResolver.resolve('kverfilter') def kverrc = build.buildVariableResolver.resolve('kverrc') +def slesversion = build.buildVariableResolver.resolve('slesversion') def uversion = build.buildVariableResolver.resolve('uversion') def job = Hudson.instance.getJob(build.buildVariableResolver.resolve('kbuildjob')) def currentJobName = build.project.getFullDisplayName() @@ -342,7 +457,27 @@ def matchStrs = [] def blacklist = [] def kversionFactory = "" -if (uversion != null) { +if (slesversion != null) { + kversionFactory = new SlesKVersion() + switch (slesversion) { + case 'sles15sp4': + matchStrs = [ + ~/^refs\/tags\/(rpm-5.14.21-150400\.22(\.\d+)?(\.\d+)?)$/, + ~/^refs\/tags\/(rpm-5.14.21-150400\.24(\.\d+)?(\.\d+)?)$/, + ] + blacklist = [ + // "Retracted", @see https://www.suse.com/support/kb/doc/?id=000019587#SLE15SP4 + 'rpm-5.14.21-150400.24.49', + 'rpm-5.14.21-150400.24.84', + ] + break + + default: + println "Unsupported SLES version: ${slesversion}" + throw new InterruptedException() + break + } +} else if (uversion != null) { kversionFactory = new UbuntuKVersion() switch (uversion) { case 'jammy': @@ -357,6 +492,13 @@ if (uversion != null) { matchStrs = [ ~/^refs\/tags\/(Ubuntu-5\.4\.0-\d{1,3}?\.[\d]+)$/, ~/^refs\/tags\/(Ubuntu-hwe-5\.13-5\.13\.0-.*_20\.04\.\d+)$/, + ~/^refs\/tags\/(Ubuntu-hwe-5\.15-5\.15\.0-.*_20\.04\.\d+)$/, + ] + break + + case 'noble': + matchStrs = [ + ~/^refs\/tags\/(Ubuntu-6\.8\.0-\d{1,3}?\.[\d]+)$/, ] break @@ -436,14 +578,27 @@ switch (kverfilter) { println('Filter kernel versions to keep only the latest point release of each lts branch and the current stable.') def lts_kversions = [] + // Old LTS entries are kept so that "lts-head" is still meaningful in kernel + // version ranges that are supported by lttng-modules but no longer supported + // upstream, eg. lttng-modules stable-2.13 supports >= 3.0 + lts_kversions.add(kversionFactory.factory("v3.0")) // LTS until October 2013 + lts_kversions.add(kversionFactory.factory("v3.2")) // LTS until May 2018 + lts_kversions.add(kversionFactory.factory("v3.4")) // LTS until October 2016 + lts_kversions.add(kversionFactory.factory("v3.10")) // LTS until November 2017 + lts_kversions.add(kversionFactory.factory("v3.12")) // LTS until May 2017 + lts_kversions.add(kversionFactory.factory("v3.14")) // LTS until August 2016 + lts_kversions.add(kversionFactory.factory("v3.16")) // LTS until October 2014 + lts_kversions.add(kversionFactory.factory("v3.18")) // LTS until January 2017 + lts_kversions.add(kversionFactory.factory("v4.1")) // LTS until May 2018 lts_kversions.add(kversionFactory.factory("v4.4")) // SLTS until 2026 lts_kversions.add(kversionFactory.factory("v4.9")) // LTS until January 2023 lts_kversions.add(kversionFactory.factory("v4.14")) // LTS until January 2024 lts_kversions.add(kversionFactory.factory("v4.19")) // LTS until December 2024 lts_kversions.add(kversionFactory.factory("v5.4")) // LTS until December 2025 lts_kversions.add(kversionFactory.factory("v5.10")) // LTS until December 2026 - lts_kversions.add(kversionFactory.factory("v5.15")) // LTS until October 2026 + lts_kversions.add(kversionFactory.factory("v5.15")) // LTS until December 2026 lts_kversions.add(kversionFactory.factory("v6.1")) // LTS until December 2026 + lts_kversions.add(kversionFactory.factory("v6.6")) // LTS until December 2026 // First filter the head of each branch for (i = 0; i < kversions.size(); i++) {