【问题标题】:Groovy Script for Nodejs plugin unable to configure on Jenkins无法在 Jenkins 上配置 Nodejs 插件的 Groovy 脚本
【发布时间】:2016-06-08 05:32:24
【问题描述】:

我觉得我错过了 Nodejs 插件的数据绑定构造函数,上面写着“列表扩展 hudson.tools.ToolProperty 属性”

import jenkins.model.*
import hudson.tools.*
import jenkins.plugins.nodejs.tools.*

def inst = Jenkins.getInstance()

def desc = inst.getDescriptor(jenkins.plugins.nodejs.NodeJSInstaller)

def sinst = new NodeJSInstallation("nodejs12", "/usr/local/bin/node/")

desc.setInstallations(sinst)

desc.save()

Error:

    Mixlib::ShellOut::ShellCommandFailed
    ------------------------------------
    Expected process to exit with [0], but received '1'
    ---- Begin output of "java" -jar "/var/chef/cache/jenkins-cli.jar" -s http:/
    /localhost:8080 groovy /tmp/groovy20160225-23006-1a7g9ix ----
    STDOUT:
    STDERR: ERROR: Unexpected exception occurred while performing groovy command
.
    groovy.lang.MissingPropertyException: No such property: Jenkins for class: RemoteClass 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
        at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
        at RemoteClass.run(RemoteClass:6)
        at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:266)
        at groovy.lang.GroovyShell.run(GroovyShell.java:517)
        at hudson.cli.GroovyCommand.run(GroovyCommand.java:86)
        at hudson.cli.CLICommand.main(CLICommand.java:256)
        at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:92)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:608)
        at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:583)
        at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:542)
        at hudson.remoting.UserRequest.perform(UserRequest.java:120)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:326)
        at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
        at hudson.cli.CliManagerImpl$1.call(CliManagerImpl.java:63)
        at hudson.remoting.CallableDecoratorAdapter.call(CallableDecoratorAdapter.java:18)
        at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
        at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    ---- End output of "java" -jar "/var/chef/cache/jenkins-cli.jar" -s http://localhost:8080 groovy /tmp/groovy20160225-23006-1a7g9ix ----
    Ran "java" -jar "/var/chef/cache/jenkins-cli.jar" -s http://localhost:8080 groovy /tmp/groovy20160225-23006-1a7g9ix returned 1

    Cookbook Trace:
    ---------------
    /var/chef/cache/cookbooks/jenkins/libraries/_executor.rb:84:in `execute!'
    /var/chef/cache/cookbooks/jenkins/libraries/_executor.rb:137:in `groovy!'
    /var/chef/cache/cookbooks/jenkins/libraries/script.rb:48:in `block (2 levels) in <class:JenkinsScript>'
    /var/chef/cache/cookbooks/jenkins/libraries/script.rb:47:in `block in <class:JenkinsScript>'

    Resource Declaration:
    ---------------------
    # In /var/chef/cache/cookbooks/jenkins/recipes/nodeconfig.rb

      3: jenkins_script 'nodejs' do
      4:   command <<-EOH.gsub(/^ {4}/, '')
      5:
      6: import hudson.model.*
      7: import hudson.tools.*
      8: import jenkins.plugins.nodejs.tools.*
      9:
     10: def inst = Jenkins.getInstance()
     11:
     12: def desc = inst.getDescriptor(jenkins.plugins.nodejs.NodeJSInstaller)
     13:
     14: def sinst = new NodeJSInstallation("nodejs12", "/usr/local/bin/node")
     15:
     16: desc.setInstallations(sinst)
     17:
     18: desc.save()
     19:
     20: EOH
     21: end

我无法理解该错误,因为我对 Java 知之甚少,而且我是 Jenkins 的新手。

【问题讨论】:

    标签: node.js jenkins groovy jenkins-plugins chef-recipe


    【解决方案1】:

    jenkins 上 nodejs 插件的 Groovy 脚本

    import hudson.model.*
    import hudson.tools.*
    import jenkins.plugins.nodejs.tools.*
    import jenkins.model.*
    
    def inst = Jenkins.getInstance()
    def desc = inst.getDescriptor(jenkins.plugins.nodejs.tools.NodeJSInstallation)
    def installer = new NodeJSInstaller("NodeJS version", "some npm package", npm package refresh hours(integer))
    
    def prop = new InstallSourceProperty([installer])
    def sinst = new NodeJSInstallation("Name of installation(string-tag)", "/path/to/nodejs/executable",[prop])
    
    desc.setInstallations(sinst)
    desc.save()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 2016-03-24
      • 2018-02-26
      • 2014-09-03
      相关资源
      最近更新 更多