Jenkins 在节点中运行任务两次
我正在使用Jenkins管道插件来测试我的项目。我有一个如下形式的Groovy脚本:Jenkins 在节点中运行任务两次,jenkins,groovy,Jenkins,Groovy,我正在使用Jenkins管道插件来测试我的项目。我有一个如下形式的Groovy脚本: node { stage("checkout") { //some other code } stage("build") { //some other code } stage("SonarQube Analysis") { //some other code } } 当我有一个要合并到master的功能分支时,我想首先在master
node {
stage("checkout") {
//some other code
}
stage("build") {
//some other code
}
stage("SonarQube Analysis") {
//some other code
}
}
当我有一个要合并到master
的功能分支时,我想首先在master
上执行此过程,然后在功能上执行此过程,并查看SonarQube分析是否在功能上更差
我想要这种东西:
def codeCoverageMaster = node("master")
def codeCoverageFeature = node("feature/someFeature")
if(codeCoverageFeature < codeCoverageMaster) {
currentBuild.result = "ERROR"
}
def codeCoverageMaster=节点(“主节点”)
def codeCoverageFeature=节点(“feature/someFeature”)
if(codeCoverageFeature
这样做可能吗?您可以定义一个包含脚本的函数并返回SonarQube结果,然后调用该函数两次并比较结果:
def runBranch(String path) {
def sonarQubeRes
node {
stage("checkout") {
//some other code
// Use path supplied to this function
}
stage("build") {
//some other code
}
stage("SonarQube Analysis") {
//some other code
}
}
return sonarQubeRes
}
def codeCoverageMaster = runBranch("master")
def codeCoverageFeature = runBranch("feature/someFeature")
if(codeCoverageFeature < codeCoverageMaster) {
currentBuild.result = "ERROR"
}
def runBranch(字符串路径){
def声纳Quberes
节点{
阶段(“结帐”){
//其他代码
//使用提供给此函数的路径
}
舞台(“建造”){
//其他代码
}
阶段(“声纳分析”){
//其他代码
}
}
回程声纳
}
def codeCoverageMaster=runBranch(“主”)
def codeCoverageFeature=runBranch(“feature/someFeature”)
if(codeCoverageFeature