Передача замыкания в качестве аргумента другому замыканию в Jenkins Groovy - PullRequest
0 голосов
/ 11 апреля 2020

Мне нужно передать замыкание в качестве аргумента другому замыканию, не уверенный, должно ли работать сработанное ниже или как заставить его работать

Closure Build(String imageName, String testCommand){
    Closure testImage = { imageName ->
        sh('''cd ''' + dir + ''' \
            && if make image ''' + imageName''' 2>&1 | grep -m 1 "No rule to make target"; then exit 1; fi''',
            returnStatus: true
        )
    }

    Closure runTests = { imageName ->
        makeResult = runWithCommand(imageName, testImage(imageName))
        if (makeResult != 0) {
        runWithCommand(imageName, testCommand)
        }
    }
}

def runWithCommand(image_ref, t_command) {

    sh'''#!/bin/bash
        docker run --rm -i '''image_ref ''' /bin/bash -c \'''' + t_command + '''\'
    '''
}

В приведенном выше коде testImage является закрытием, которое передается к другой функции в groovy, не уверен, что это правильный путь и он работает?

...