Как указать время ожидания проверки Job DSL в плагине Jenkins Git?

Время ожидания клонирования можно указать с помощью:

git {
    ...
    cloneTimeout(60)
}

где 60 - это время ожидания в минутах. Я читал, что также можно указать время ожидания проверки, но я не могу найти подробности. И checkoutTimeout(...), и timeout(...) выдают ошибку.

ИЗМЕНИТЬ

Я могу установить время ожидания оформления заказа через графический интерфейс Jenkins (Configuration --> SCM --> Git --> Additional Behaviors --> Advanced Checkout Behaviors --> Timeout). Я хотел бы сделать то же самое в скрипте Groovy, который генерирует конфигурации Docker для Jenkins:

...
public class DockerJob {
...
    multiscm {
        git {
            remote {
                url(...)
                branch(...)
                ...
            }
            shallowClone()
            cloneTimeout(60)
            // Add "checkout timeout" here...
        }
        ...
    }
    ...
}
...

person Petr Vepřek    schedule 09.03.2016    source источник
comment
Вы спрашиваете, как это сделать в конфигурации работы через пользовательский интерфейс Jenkins?   -  person rgulia    schedule 10.03.2016


Ответы (4)


Мне пришлось изменить это с помощью конвейера, так как CheckoutOption у меня не работал.

расширения: [[$class: 'CloneOption', время ожидания: 120]]

Полный код оплаты

checkout([$class: 'GitSCM', branches: [[name: '*/master']],
            extensions: [[$class: 'CloneOption', timeout: 120]], gitTool: 'Default', 
            userRemoteConfigs: [[credentialsId: key, url: repo]]
        ])
person guillem    schedule 30.08.2017

После некоторых экспериментов я нашел решение, показанное ниже.

ОБЗОР

Время ожидания оформления заказа можно установить с помощью графического интерфейса Jenkins (Configuration --> SCM --> Git --> Additional Behaviors --> Advanced Checkout Behaviors --> Timeout). Я хотел бы сделать то же самое в скрипте Groovy, который генерирует конфигурации Docker для Jenkins. Сценарий уже устанавливает время ожидания клонирования.

...
public class DockerJob {
...
    multiscm {
        git {
            remote {
                url(...)
                branch(...)
                ...
            }
            shallowClone()
            cloneTimeout(60)
            // Add "checkout timeout" here...
        }
        ...
    }
    ...
}
...

Очевидное

...
// "Checkout timeout"
checkoutTimeout(60)
...

не сработало. Установка таймаутов в целом

...
// "Checkout timeout"
timeout(60)
...

тоже не работал. Затем комментарии на веб-странице ведут к:

...
// "Checkout timeout"
extensions {
    checkoutOptions {
        timeout(60)
    }
}
...

это тоже не сработало. Окончательно...

РЕШЕНИЕ

...
public class DockerJob {
...
    multiscm {
        git {
            remote {
                url(...)
                branch(...)
                ...
            }
            shallowClone()
            cloneTimeout(60)
            // "Checkout timeout"
            configure { node ->
                node / 'extensions' << 'hudson.plugins.git.extensions.impl.CheckoutOption' {
                    timeout 60
                }
            }
        }
        ...
    }
    ...
}
...
person Petr Vepřek    schedule 03.04.2016

Как насчет того, чтобы использовать плагин рабочего процесса и сделать что-то подобное?

checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CheckoutOption', timeout: 100]], submoduleCfg: [], userRemoteConfigs: [[]]])
person OhadBasan    schedule 10.03.2016
comment
Для простоты мне нужно решение (для тайм-аута проверки), аналогичное тому, что уже присутствует для тайм-аута клонирования. - person Petr Vepřek; 03.04.2016

Следующая конфигурация проверки отлично работает для меня в сценарии конвейера jenkins. Мы используем stash1, как и github, в качестве внутреннего сервера git. Замените его своим.

stage('Checkout') {
            steps {
                echo "Running checkout stage"
                checkout([$class: 'GitSCM', branches: [
                    [name: "*/${params.branch}"]
                ], doGenerateSubmoduleConfigurations: false, extensions: [
                    [$class: 'CleanCheckout'], [$class: 'CloneOption', timeout: 30, shallow: true]
                ], submoduleCfg: [], userRemoteConfigs: [
                    [credentialsId: 'ink_bot', url: "ssh://[email protected]:7999/int_sparktp/${params.repo}.git"]
                ]])
            }
        }
person saumilsdk    schedule 11.12.2019