2017-02-28 55 views
4

我们非常喜欢使用管道中不支持的一些插件,并希望在管道的共享库中实现它们的用法。为此需要的主要项目之一是获得Jenkins实例,有人可以分享一种方法来做到这一点?访问Jenkins实例和管道的共享库

  1. 是否有任何限制或适当的方式来获得下“SRC”或Jenkins.getActiveInstance()保持“乏”文件夹?

我试过在src代码下得到Jenkins.getActiveInstance()以及vars代码,但它返回null,我在这里丢失了什么吗?任何帮助将不胜感激。

感谢

回答

2

尝试 'Hudson.instance'。下面这条管道适用于Jenkins 2.32.x.您可能必须执行一些脚本审批或关闭沙箱。

pipeline { 

    agent none 

    stages{ 

     stage('Instance Info') { 

      steps { 
       script { 

        def jenkinsInstance = Hudson.instance 

        for (slave in jenkinsInstance.slaves) { 

         echo "Slave: ${slave.computer.name}" 
        } 
       } 
      } 
     } 
    } 
} 

比尔

+0

即使关闭了沙盒,并且该代码在'@ NonCPS'方法下运行,我仍然得到了'java.io.NotSerializableException:hudson.model.Hudson'。 – jayhendren

+0

结果我需要一个'def'声明我分配给'Hudson.instance'的变量。即'def foo = Hudson.instance'起作用; 'foo = Hudson.instance'不。 – jayhendren

0

这张票可以被关闭,有几个问题: 1.修正通过(管理詹金斯 - >在脚本审批)访问 2.一些脚本包含非CPS代码