2016-01-27 78 views
-1

我已經創建了以下groovy腳本來在Jenkins中創建示例作業。Jenkins作業DSL問題

import hudson.model.* 
import hudson.node_monitors.* 
import hudson.slaves.* 
import java.util.concurrent.* 
jenkins = Hudson.instance 

now=Calendar.instance; 
def project_name = 'ARCHIE_DSL_TEST' 

println("The build is run at ${now.time}"); 

freeStyleJob(project_name) { 
     disabled(false) 
     logRotator(-1, 10) 
     description("Our first DSL Generated ServerSpec Job") 
     parameters { 
       choiceParam("SERVER_FQDN", ["server1.test.com.au", "server2.test.com.au", "server3.test.com.au", "server4.test.com.au"]) 
       description 'Select a server from the list to test' 
     } 
     scm { 
       git { 
         remote { 
           github("MY_ORG/my_repo", 'ssh', 'github.aus.mydomain.com') 
           branch("*/master") 
         } 
       } 
     } 
     triggers { 
       scm("H/15 * * * *") 
     } 
     steps { 
     } 
} 

當我創建詹金斯作業來運行這個DSL,它工作正常,並創建一個名爲ARCHIE_DSL_TEST工作。

但是我想要做的是使用curl來運行這個工作,我一直在運行以下命令。

/usr/bin/curl -k --user 'archie' --data-urlencode "script=$(</var/lib/jenkins/jobs/archie_test/workspace/create_tab.groovy)" https://localhost:8080/scriptText 

然而,它給了我一個例外。

構建在週三1月27日16時54分20秒東部時間2016 groovy.lang.MissingMethodException運行:法無簽名: Script1.freeStyleJob()是適用於參數類型: (java.lang中.String,SCRIPT1 $ _run_closure1)值:[ARCHIE_DSL_TEST, SCRIPT1 $ _run_closure1 @ 9761fdb]在 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55) 在 org.codehaus.groovy.runtime。 callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(Call SiteArray.java:46) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: 145) 在Script1.run(Script1.groovy:13)在在 groovy.lang.GroovyShell.evaluate(GroovyShell.java:618) groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)在 常規。 lang.GroovyShell.evaluate(GroovyShell.java:589)在 hudson.util.RemotingDiagnostics $ Script.call(RemotingDiagnostics.java:139) 在 hudson.util.RemotingDiagnostics $ Script.call(RemotingDiagnostics.java:111) 在hudson.remoting.LocalChannel.call(L ocalChannel.java:45)at hudson.util.RemotingDiagnostics.executeGroovy(RemotingDiagnostics.java:108) at jenkins.model.Jenkins._doScript(Jenkins.java:3556)at jenkins.model.Jenkins.doScriptText(Jenkins。 java:3540)at sun.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606 )at org.kohsuke.stapler.Function $ InstanceFunction.invoke(Function.java:298) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse (Function.java:96) at org.kohsuke.stapler.MetaClass $ 1.d oDispatch(MetaClass.java:121)at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)at org.kohsuke。訂書機。訂書機(Infor)(Stapler.java:876) org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)at org.kohsuke.stapler.Stapler.service(Stapler.java:238)at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) at org.eclipse.jetty.servlet.ServletHandler $ CachedChain .doFilter(ServletHandler.java:1494) at hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter。Java的:123) 在 hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59) 在 hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:120) 在 com.smartcodeltd.jenkinsci。 plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:46) 在 hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:120) 在 hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java :95) at hudson.util.PluginServletFilter $ 1.doFilter(PluginServletFilter.java:120) at hudson.util.PluginServletFilter.doFilter(PluginServ letFilter.java:114) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482) 在hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)在 組織.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482) 在 hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:84) 在 hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter。 java:51) at hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter。 Java的:117) 在 hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在 org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 在 hudson.security。 ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在 org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) 在 hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在 jenkins.security.BasicHeaderProcessor.success(BasicHeaderProcessor.java:140) 在 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82) 在 hudson.security.ChainedServletFilter $ 1.doFilter(ChainedServletFilter.java:87) 在 org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 在 hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2。 java:67) at hudson.security.ChainedServletFil之三$ 1.doFilter(ChainedServletFilter.java:87) 在 hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 在hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)在 org.eclipse。 jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482) 在 org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1482) 在 hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain。的doFilter(ServletHandler.java:1482) 在 org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) 在 org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1474) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 在 org.eclipse .jetty.security.SecurityHandler.handle(SecurityHandler.java:533) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 在 org.eclipse.jetty .server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) at org.eclipse.jetty.server.handler .ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server。 java:370)at org.eclipse.jetty.server.AbstractHttpConnection.handl eRequest(AbstractHttpConnection.java:489) 在 org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) 在 org.eclipse.jetty.server.AbstractHttpConnection $ RequestHandler.headerComplete(AbstractHttpConnection.java: 1011) 在org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:651) 在 org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 在 org.eclipse。 jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196) at org.eclipse.jetty.io .nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint $ 1.run(SelectChannelEndPoint.java:52) 在 winstone.BoundedExecutorService $ 1.run(BoundedExecutorService.java :77) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread中.run(Thread.java:745)

我在做什麼錯在這裏?

非常感謝。

回答

0

最直接的方式做你想要的是:

  • 創建「過程作業DSL」一詹金斯工作建立的步驟,從SCM載入你create_tabs.groovy
  • 啓用「觸發遠程構建(例如,從腳本)「在作業中構建觸發器選項
  • 通過捲曲觸發該作業,例如curl http://someserver/job/dsl_job/build
相關問題