X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=scripts%2Flttng-modules%2Fmaster-rt.groovy;h=f2624cd779ab8417cafad0981f9ac200108966a6;hb=HEAD;hp=33eb0f386f2d094d7eca74fec9c2f9615b42c78f;hpb=c5c05f7395670027d7b625400ea0bf5355063bfa;p=lttng-ci.git diff --git a/scripts/lttng-modules/master-rt.groovy b/scripts/lttng-modules/master-rt.groovy index 33eb0f3..f2624cd 100644 --- a/scripts/lttng-modules/master-rt.groovy +++ b/scripts/lttng-modules/master-rt.groovy @@ -1,5 +1,5 @@ /** - * Copyright (C) 2016-2017 - Michael Jeanson + * Copyright (C) 2016-2018 - Michael Jeanson * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -158,7 +158,7 @@ class RTKVersion implements Comparable { // Retrieve parameters of the current build -def mversion = build.buildVariableResolver.resolve('mversion') +def mbranch = build.getEnvironment(listener).get('GIT_BRANCH').minus('origin/') def maxConcurrentBuild = build.buildVariableResolver.resolve('maxConcurrentBuild') def kgitrepo = build.buildVariableResolver.resolve('kgitrepo') def kverfloor_raw = build.buildVariableResolver.resolve('kverfloor') @@ -166,7 +166,7 @@ def kverceil_raw = build.buildVariableResolver.resolve('kverceil') def kverfilter = build.buildVariableResolver.resolve('kverfilter') def job = Hudson.instance.getJob(build.buildVariableResolver.resolve('kbuildjob')) def currentJobName = build.project.getFullDisplayName() - +def gitmodpath = build.getEnvironment(listener).get('WORKSPACE') + "/src/lttng-modules" // Get the out variable def config = new HashMap() @@ -175,24 +175,31 @@ config.putAll(bindings.getVariables()) def out = config['out'] +// Get the lttng-modules git url +def gitmodrepo = Git.open(new File(gitmodpath)) +def mgitrepo = gitmodrepo.getRepository().getConfig().getString("remote", "origin", "url") + // Get tags from git repository -def refs = Git.lsRemoteRepository().setTags(true).setRemote(kgitrepo).call(); +def refs = Git.lsRemoteRepository().setTags(true).setRemote(kgitrepo).call() // Get kernel versions to build def kversions = [] -def matchStrs = [ +def tagMatchStrs = [ ~/^refs\/tags\/(v[\d\.]+(-rt(\d+)-rebase))$/, ] def blacklist = [ - 'v4.11.8-rt5-rebase', - 'v4.11.9-rt6-rebase', - 'v4.11.9-rt7-rebase', - 'v4.11.12-rt8-rebase', - 'v4.11.12-rt9-rebase', - 'v4.11.12-rt10-rebase', - 'v4.11.12-rt11-rebase', - 'v4.11.12-rt12-rebase', - 'v4.11.12-rt13-rebase', + ~/v4\.11\.8-rt5-rebase/, + ~/v4\.11\.9-rt6-rebase/, + ~/v4\.11\.9-rt7-rebase/, + ~/v4\.11\.12-rt8-rebase/, + ~/v4\.11\.12-rt9-rebase/, + ~/v4\.11\.12-rt10-rebase/, + ~/v4\.11\.12-rt11-rebase/, + ~/v4\.11\.12-rt12-rebase/, + ~/v4\.11\.12-rt13-rebase/, + ~/v4\.19.*-rebase/, + ~/v3\.6.*-rebase/, + ~/v3\.8.*-rebase/, ] def kversionFactory = new RTKVersion() @@ -214,13 +221,29 @@ try { // Build a sorted list of versions to build for (ref in refs) { - for (matchStr in matchStrs) { - def match = ref.getName() =~ matchStr - if (match && !blacklist.contains(match.group(1))) { - def v = kversionFactory.factory(match.group(1)) + for (tagMatchStr in tagMatchStrs) { + def tagMatch = ref.getName() =~ tagMatchStr + + if (tagMatch) { + def kversion_raw = tagMatch.group(1) + def blacklisted = false + + // Check if the kversion is blacklisted + for (blackMatchStr in blacklist) { + def blackMatch = kversion_raw =~ blackMatchStr + + if (blackMatch) { + blacklisted = true + break; + } + } + + if (!blacklisted) { + def v = kversionFactory.factory(kversion_raw) - if ((v >= kverfloor) && (v < kverceil)) { - kversions.add(v) + if ((v >= kverfloor) && (v < kverceil)) { + kversions.add(v) + } } } } @@ -228,6 +251,11 @@ for (ref in refs) { kversions.sort() +//println "Pre filtering kernel versions:" +//for (k in kversions) { +// println k +//} + switch (kverfilter) { case 'stable-head': // Keep only the head of each stable branch @@ -275,14 +303,16 @@ while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) { if(ongoingBuild.size() < maxConcurrentBuild.toInteger() && kversions.size() != 0) { def kversion = kversions.pop() def job_params = [ - new StringParameterValue('mversion', mversion), + new StringParameterValue('mversion', mbranch), + new StringParameterValue('mgitrepo', mgitrepo), new StringParameterValue('ktag', kversion.toString()), new StringParameterValue('kgitrepo', kgitrepo), + new StringParameterValue('distroversion', ''), ] // Launch the parametrized build def param_build = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(job_params)) - println "triggering ${joburl} for the ${mversion} branch on kernel ${kversion}" + println "triggering ${joburl} for the ${mbranch} branch on kernel ${kversion}" // Add it to the ongoing build queue ongoingBuild.push(param_build)