2017-02-16 3 views
0

Я использую плагин Jenkins для проверки моего проекта. У меня есть Groovy скрипт следующего вида:Выполнять задачи в узле дважды

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" 
} 

что-то подобное возможно?

ответ

1

Вы делаете это, определив функцию, которая содержит сценарий и вернуть результат 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" 
} 
Смежные вопросы