не может запустить задачу Gradle из другой задачи - PullRequest
0 голосов
/ 05 октября 2018

У меня есть задание Jenkins, которое запускает некую задачу gradle:

 gradle clean -Pendpoint=qab assembleFromJenkinsJob

Вот сама задача:

task assembleFromJenkinsJob << {

    logger.lifecycle("Value of 'endpoint': ${endpoint}")
    if (String.valueOf(endpoint).equalsIgnoreCase('qab')) {
        assembleJenkinsQa
    } else if (String.valueOf(endpoint).equalsIgnoreCase('prod')) {
        assembleRelease
    }
    else
        assembleJenkinsQa
}

Задача assembleFromJenkinsJob выполняется:

:app:assembleFromJenkinsJob
Value of 'endpoint': qab

, но assembleJenkinsQa или assembleRelease не запущены.

Я даже пытался сделать это так assembleRelease.execute(), но ничего не происходит.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Я бы посоветовал использовать finalizedBy

task assembleFromJenkinsJob {
    def ep = String.valueOf(endpoint).toLowerCase()
    logger.lifecycle("Value of 'endpoint': ${ep}")
    switch (ep) {
        case 'qab':
            finalizedBy 'assembleJenkinsQa'
            break
        case 'prod':
            finalizedBy 'assembleRelease'
            break
        default:
            finalizedBy 'assembleJenkinsQa'
    }
}
0 голосов
/ 05 октября 2018

Вы никогда не должны вызывать задачу напрямую.Также вам не нужно вызывать задачу, а определять зависимость.И, наконец, в действии (<<) уже слишком поздно для запуска задачи.

Дайте мне знать, что это работает:

task assembleFromJenkinsJob {
    logger.lifecycle("Value of 'endpoint': ${endpoint}")

    if (String.valueOf(endpoint).equalsIgnoreCase('qab')) {
        dependsOn assembleJenkinsQa
    } else if (String.valueOf(endpoint).equalsIgnoreCase('prod')) {
        dependsOn assembleRelease
    } else
        dependsOn assembleJenkinsQa
}
...