2015-12-23 117 views
0

我們做了很多Jenkins系統Groovy腳本來檢查我們的Jenkins配置是否有問題,例如某人在不應該匿名訪問時允許他人訪問。但有時我們想在這些自我審計中標記一項工作被忽略。舉報Jenkins作業

我的想法是通過EnvInject插件設置環境變量。但是我看不到在哪裏可以使用Groovy系統腳本來獲取這些值?

任何人都知道如何做到這一點?這種方法的替代方案也是有幫助的。

+0

爲什麼不把它作爲排斥在Groovy腳本本身?像添加一個grep來過濾掉已知的「ok」作業? –

+0

每個單獨的工作創造者都需要能夠做到這一點,因爲我們不想保留一份工作清單或類似的東西。 –

回答

0

您可以使用使用獲得的系統Groovy腳本的環境變量如下:

def myVar = build.getEnvironment(listener).get('JOB_NAME') 
println "JOB_NAME = " + myVar 
+0

我不認爲這會對我們有用。它從當前正在運行的作業中獲取信息,並從作業定義中獲取所需的信息。舉個例子: Jenkins.instance.items.each { println it.getName } –

+0

所以,你想遍歷每個作業,並基於在該作業中配置的東西(某種標誌是基於env。var),您想要進一步掃描作業配置中的常見故障嗎?你可以在上面的例子中使用'myVar'(它包含作業名稱)來獲取作業對象,然後從那裏(檢查env,var等),但是我會在添加更完整的示例之後一些測試。 –

+0

這得到我需要的信息,但我不喜歡解決方案。基本上它讀取config.xml以獲取注入的變量。 path = jobHome +'/'+ item.getFullDisplayName()+'/config.xml'; path = path.replace('»','/ jobs /'); theFile =新的文件(路徑) DEF目錄root1 =新的XmlSlurper()。parseText(theFile.text) root1.buildWrappers.EnvInjectBuildWrapper.info.propertiesContent.each { 的println路徑+ '' + theFile.isFile () println'ENVINJECT ['+ it +']' } –