2017-04-20 120 views
-1

我想用鬆弛通知插件更新現有jenkins作業。groovy腳本更新現有jenkins作業與鬆弛通知

被困在這個很長一段時間,有人可以引導我嗎?感謝你的幫助傢伙。

試圖詹金斯腳本控制檯以下:

for (item in Jenkins.instance.getItemByFullName("TestJob")) { 
    item.publishersList.replace(new jenkins.plugins.slack.SlackNotifier('http://example.com', 'chann', 'jkkljh7777kkjlkj', false, '', '', '', true, true, true, true, true, true, true, true, true, true, true, null, true, 'hmm')) 
} 

收到下面的錯誤。

groovy.lang.GroovyRuntimeException:找不到匹配的構造函數:jenkins.plugins.slack.SlackNotifier(java.lang.String中,java.lang.String中,java.lang.String中,一個java.lang.Boolean ,java.lang.String,java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean,java.lang.Boolean,java.lang.Boolean,java.lang.Boolean,java .lang.Boolean,java.lang.Boolean,java.lang.Boolean,java.lang.Boolean,java.lang.Boolean,java.lang.Boolean,null,java.lang.Boolean,java.lang.String) 在groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1731) 在groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1534) 在org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(METAC lassConstructorSite.java:49) 在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) 在org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) 在Script1.run(Script1.groovy:2) 在groovy.lang.GroovyShell.evaluate(GroovyShell.java:585) 在groovy.lang.GroovyShell.evaluate(GroovyShell.java:623) 在groovy.lang。 GroovyShell.evaluate(GroovyShell.java:594) at hudson.util.RemotingDiagnostics $ Script.call(RemotingDiagnostics.java:142) at hudson.util.RemotingDiagnostics $ Script.call(RemotingDiagnostics.java:114) at hudson。 remoting.LocalChannel.call(LocalChannel.java:45) at hudson.util.Remoti ngDiagnostics.executeGroovy(RemotingDiagnostics.java:111) 在jenkins.model.Jenkins._doScript(Jenkins.java:4295) 在jenkins.model.Jenkins.doScript(Jenkins.java:4267) 在sun.reflect.NativeMethodAccessorImpl。 invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(方法.java:606) at org.kohsuke.stapler.Function $ InstanceFunction.invoke(Function.java:335) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175) at org.kohsuke.stapler .Function.bindAndInvokeAndServeResponse(Function.java:108) 在org.kohsuke.stapler.MetaClass $ 1.doDispatch(MetaClass.java:124) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(訂書機。 java:746) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) at org.kohsuke.stapler.Stapler。服務(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org。 apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.jav a:135) at org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter。java:79) at hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:132) at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:47) at hudson.util .PluginServletFilter $ 1.doFilter(PluginServletFilter.java:132) 在hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59) 在hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:132) 在哈德遜.plugins.audit_trail.AuditTrailFilter.doFilter在(AuditTrailFilter.java:95) 在hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:132) 在hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126) org.apache.catalina.core.ApplicationFilterChain.internalDoFi濾波器(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80) 在有機apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java :84) 在hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.jav一:117) 在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 在1 hudson.security.ChainedServletFilter $。的doFilter(ChainedServletFilter.java:87) 在org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) 在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在org.acegisecurity .ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) 在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 在hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67 ) 在hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 在hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 處的org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) 處的。 ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 的組織。 apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain。的java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在org.apache。 catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve。的java:127) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache。 catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:299) at org.apa che.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net。 JIoEndpoint $ Worker.run(JIoEndpoint.java:489) 在java.lang.Thread.run(Thread.java:745)

回答

0

我使用Slack Notification Plugin和後懈怠這樣的:

stage('notify') { withCredentials([[$class: 'StringBinding', credentialsId: 'my-id', variable: 'my-slack-token']]) { slackSend(message: "my status message", teamDomain: 'my-team', token: env.my-slack-token, channel: '#my-channel', color: 'good') } }

請記住,您需要爲您的Slack集成令牌創建憑據(我是cal靈,my-credentials-id,然後將該值賦給變量my-slack-token)。您可以在「Manage Jenkins」>「Credentials」中創建該憑證。

對不起,格式化。 :(

+0

謝謝雅各布,但你在創造一份工作時使用這個,我計劃編輯一份現存的工作,但我沒有它的dsl,它是用jenkins gui創建的。通過使用groovy向其添加鬆散通知來編輯任何現有作業。:) –