int revision = -1
int build = -1
int rc = -1
+ String gitRefs
// Default Constructor
KernelVersion() {}
// Parse a version string of format X,Y,Z,W-A
- KernelVersion(String version) {
- def tokenVersion
+ KernelVersion(String version, String ref) {
+ gitRefs = ref
+ def tokenVersion
def token
if (version.contains('-')) {
// Release canditate
}
}
if (rc != -1) {
- ret += "-" + rc
+ ret += "-rc" + rc
}
}
return ret
}
}
-def cutoff = [major: 3, minor:19,revision:-1, build:-1, rc:-1]
+def cutoff = [major: 3, minor: 19,revision:-1, build:-1, rc:-1]
def linuxURL = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"
def modulesURL = "git://git.lttng.org/lttng-modules.git"
def linuxGitReference = "/home/jenkins/gitcache/linux-stable.git"
String process = "git ls-remote -t $linuxURL | cut -c42- | sort -V"
-// Check if we run the script on a jenkins instance
-// This is useful for dev and debug locally on groovy feature and not jenkins specific stuff
-def isJenkinsInstance = binding.variables.containsKey('JENKINS_HOME')
-
-
// Split the string into sections based on |
// And pipe the results together
def out = new StringBuilder()
if ( result.exitValue() == 0 ) {
def branches = out.readLines().collect {
- it.replaceAll("\\^\\{\\}", '').replaceAll("rc", '').replaceAll(/refs\/tags\/v/,'')
+ it.replaceAll("\\^\\{\\}", '')
}
branches = branches.unique()
List versions = []
branches.each { branch ->
- KernelVersion kVersion = new KernelVersion(branch.toString())
+ def stripBranch = branch.replaceAll("rc", '').replaceAll(/refs\/tags\/v/,'')
+ KernelVersion kVersion = new KernelVersion(stripBranch, branch)
versions.add(kVersion)
}
// Find cut of
def cutoffPos = versions.findIndexOf{(it.major >= cutoff.major) && (it.minor >= cutoff.minor) && (it.revision >= cutoff.revision) && (it.build >= cutoff.build) && (it.rc >= cutoff.rc)}
-
// Get last version and include only last rc
def last
def lastNoRcPos
String moduleJobName = "lttng-modules-master-kernel-${kernel}"
println(jobName)
println(moduleJobName)
- if (isJenkinsInstance) {
+ if (binding.variables.containsKey('JENKINS_HOME')) {
+ println("Jenkins! YAYYY")
+ }
matrixJob("${jobName}") {
using("linux-master")
scm {
remote {
url("${linuxURL}")
}
- branch(tag)
+ branch(versions[i].gitRefs)
shallowClone(true)
relativeTargetDir(linuxCheckoutTo)
reference(linuxGitReference)
// Corresponding Module job
matrixJob("${moduleJobName}") {
using("modules")
- multiscm {
+ multiscm {
git {
remote {
name("linux")
url("${linuxURL}")
}
- branch(tag)
+ branch(versions[i].gitRefs)
shallowClone(true)
relativeTargetDir(linuxCheckoutTo)
reference(linuxGitReference)
}
}
}
- }
}
}
-