2016-04-08 16 views
1

job-dsl-coreバージョンを1.42から1.42にアップデートする予定ですが、最新バージョンのpullRequest {}クロージャは廃止され、githubPullRequest {}クロージャは、移行ドキュメントの詳細に記載されています https://github.com/jenkinsci/job-dsl-plugin/wiki/Migration#github-pull-request-builder。私は上記の勧告に私たちのコードを更新しようとすると、私は次のようなエラーになっています:job-dsl-core jarバージョンが1.44に更新され&githubPullRequestクロージャが機能しない

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.util[email protected]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!') 
       } 
      } 
     } 
    } 

この問題を解決するにはどうすればよいですか?

答えて

2

ジョブDSL 1.43では、GitHub Pull Request Builderプラグインの組み込みサポートが廃止されました。新しい構文は、GitHub Pull Request Builderプラグインのバージョン1.29.7以降が拡張機能を使用して提供しています。したがって、GitHub Pull Request Builderプラグインを1.29.7以降に更新する必要があります。

+0

私たちはジェンキンスでghprb 1.31.2を使用し、私はgpprbをインポートするジョブDSL-core.Shouldを通してそれを設定しようとしている私mavenproject&それを使用しますか? org.jenkins-ci.plugins ghprb 1.31.3 私はこの&まだ同じエラーを試してみました。これをコード化する方法を教えてください。 – Nari

+1

Jenkins以外で実行している場合、内線番号からDSLを使用することはできません。私は将来それを修正できることを願っています。しかし今のところ、廃止予定の警告を無視するか、代わりに[Configure Block](https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block)を使用することができます。 – daspilker

0

唯一の方法は、手動構成ブロックにフォールバックすることです:

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' 
          } 
         } 
        } 
       } 
      } 
     } 
関連する問題