我們做了很多Jenkins系統Groovy腳本來檢查我們的Jenkins配置是否有問題,例如某人在不應該匿名訪問時允許他人訪問。但有時我們想在這些自我審計中標記一項工作被忽略。舉報Jenkins作業
我的想法是通過EnvInject插件設置環境變量。但是我看不到在哪裏可以使用Groovy系統腳本來獲取這些值?
任何人都知道如何做到這一點?這種方法的替代方案也是有幫助的。
我們做了很多Jenkins系統Groovy腳本來檢查我們的Jenkins配置是否有問題,例如某人在不應該匿名訪問時允許他人訪問。但有時我們想在這些自我審計中標記一項工作被忽略。舉報Jenkins作業
我的想法是通過EnvInject插件設置環境變量。但是我看不到在哪裏可以使用Groovy系統腳本來獲取這些值?
任何人都知道如何做到這一點?這種方法的替代方案也是有幫助的。
您可以使用使用獲得的系統Groovy腳本的環境變量如下:
def myVar = build.getEnvironment(listener).get('JOB_NAME')
println "JOB_NAME = " + myVar
我不認爲這會對我們有用。它從當前正在運行的作業中獲取信息,並從作業定義中獲取所需的信息。舉個例子: Jenkins.instance.items.each { println it.getName } –
所以,你想遍歷每個作業,並基於在該作業中配置的東西(某種標誌是基於env。var),您想要進一步掃描作業配置中的常見故障嗎?你可以在上面的例子中使用'myVar'(它包含作業名稱)來獲取作業對象,然後從那裏(檢查env,var等),但是我會在添加更完整的示例之後一些測試。 –
這得到我需要的信息,但我不喜歡解決方案。基本上它讀取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 +']' } –
爲什麼不把它作爲排斥在Groovy腳本本身?像添加一個grep來過濾掉已知的「ok」作業? –
每個單獨的工作創造者都需要能夠做到這一點,因爲我們不想保留一份工作清單或類似的東西。 –