2017-02-28 54 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代碼