Версия jar-файла job-dsl-core обновлена ​​до 1.44, и закрытие githubPullRequest не работает

Мы планируем обновить версию job-dsl-core до 1.44 с 1.42, но в последней версии закрытие pullRequest {} устарело и заменено закрытием githubPullRequest {}, как подробно описано в документе по миграции здесь https://github.com/jenkinsci/job-dsl-plugin/wiki/Migration#github-pull-request-builder. Когда я пытаюсь обновить наш код с помощью приведенной выше рекомендации, я получаю следующую ошибку:

No signature of method: javaposse.jobdsl.dsl.helpers.triggers.TriggerContext.githubpullRequest() is applicable for argument types: (com.xxx.dva.pipeline.generator.utils.JobUtil$_addGithubPullRequestBuilderConfig_closure2_closure22) values: [com.xxx.dva.pipeline.generator.utils.JobUtil$_addGithubPullRequestBuilderConfig_closure2_closure22@7e3918d6]
at sun.reflect.GeneratedConstructorAccessor17.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:198)
at javaposse.jobdsl.dsl.AbstractExtensibleContext.methodMissing(AbstractExtensibleContext.groovy:20)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:830)
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1128)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1081)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:723)

Изменение кода:

Версия 1.42

job.triggers {
        pullRequest {
            admin(JobConstants.GITHUB_PR_ADMIN)
            orgWhitelist(JobConstants.ORG_WHITE_LIST)
            cron('* * * * *')
            permitAll()
            allowMembersOfWhitelistedOrgsAsAdmin()
            triggerPhrase(phrase)
            onlyTriggerPhrase(useTriggerPhrase)
            extensions {
                commitStatus {
                    context('Pull Request Pipeline')
                    triggeredStatus('Build Triggered!')
                    startedStatus('Build Started!')
                    completedStatus('SUCCESS', 'Went green! Go ahead and merge ${ghprbSourceBranch} into ${ghprbTargetBranch}.')
                    completedStatus('FAILURE', 'Something went wrong. Click details!')
                    completedStatus('ERROR', 'Something went really wrong. Click details!')
                }
            }
        }
    }

Версия 1.44

 job.triggers {
        githubPullRequest {
            admin(JobConstants.GITHUB_PR_ADMIN)
            orgWhitelist(JobConstants.ORG_WHITE_LIST)
            cron('* * * * *')
            permitAll()
            allowMembersOfWhitelistedOrgsAsAdmin()
            triggerPhrase(phrase)
            onlyTriggerPhrase(useTriggerPhrase)
            extensions {
                commitStatus {
                    context('Pull Request Pipeline')
                    triggeredStatus('Build Triggered!')
                    startedStatus('Build Started!')
                    completedStatus('SUCCESS', 'Went green! Go ahead and merge ${ghprbSourceBranch} into ${ghprbTargetBranch}.')
                    completedStatus('FAILURE', 'Something went wrong. Click details!')
                    completedStatus('ERROR', 'Something went really wrong. Click details!')
                }
            }
        }
    }

Как я могу исправить эту проблему?


person inari6    schedule 08.04.2016    source источник


Ответы (2)


Встроенная поддержка подключаемого модуля GitHub Pull Request Builder устарела в Job DSL 1.43. Новый синтаксис предоставляется плагином GitHub Pull Request Builder версии 1.29.7 или более поздней через расширение. Поэтому вам необходимо обновить плагин GitHub Pull Request Builder до версии 1.29.7 или более поздней.

person daspilker    schedule 11.04.2016
comment
Мы используем ghprb 1.31.2 в наших jenkins и пытаемся настроить его через job-dsl-core. Могу ли я импортировать gpprb в свой mavenproject и использовать его? ‹Dependency› ‹groupId› org.jenkins-ci.plugins ‹/groupId› ‹artifactId› ghprb ‹/artifactId› ‹version› 1.31.3 ‹/version› ‹/dependency› Я пробовал эту и все та же ошибка. Можете ли вы сказать мне, как я могу это закодировать. - person inari6; 11.04.2016
comment
Вы не можете использовать DSL из расширения при работе за пределами Jenkins. Я надеюсь, что смогу исправить это в будущем. Но пока вы можете либо игнорировать предупреждения об устаревании, либо использовать Вместо этого настройте блокировку. - person daspilker; 11.04.2016

Единственный способ - вернуться к блоку ручной настройки:

job.configure {
            def trigger = it / triggers
            trigger << 'org.jenkinsci.plugins.ghprb.GhprbTrigger' {
                adminlist JobConstants.GITHUB_PR_ADMIN
                whitelist ''
                orgslist JobConstants.ORG_WHITE_LIST
                cron '* * * * *'
                spec '* * * * *'
                triggerPhrase phrase
                onlyTriggerPhrase false
                useGitHubHooks false
                permitAll true
                autoCloseFailedPullRequests false
                commentFilePath ''
                allowMembersOfWhitelistedOrgsAsAdmin true
                extensions {
                    'org.jenkinsci.plugins.ghprb.extensions.status.GhprbSimpleStatus' {
                        commitStatusContext 'Pull Request Pipeline'
                        triggeredStatus 'Build Triggered!'
                        startedStatus 'Build Started!'
                        statusUrl ''
                        completedStatus {
                            'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage' {
                                message 'Went green! Go ahead and merge ${ghprbSourceBranch} into ${ghprbTargetBranch}.'
                                result 'SUCCESS'
                            }
                            'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage' {
                                message 'Something went wrong. Click details!'
                                result 'FAILURE'
                            }
                            'org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage' {
                                message 'Something went really wrong. Click details!'
                                result 'ERROR'
                            }
                        }
                    }
                }
            }
        }
person Ma3oxuct    schedule 26.05.2017