[英]jenkins with groovy postbuild .Not able to execute anything in groovy script field
[英]Groovy Postbuild do not execute scripts on Jenkins
我寫了一個簡單的 groovy 腳本,但我不知道如何在 Jenkins 上執行它。
看看這個簡單的腳本:
String jbN = System.getenv('JOB_NAME')
println jbN
println "Hello"
除了我至少會重溫“你好”。 劇本一去不復返。 我剛剛收到Build step 'Groovy Postbuild' marked build as failure(or success)
似乎沒有執行腳本。
編輯:
我沒有添加它,但我已經有了可以分析日志的腳本,所以我需要它來在構建后執行它。 問題比我想象的要大。 插件:“Scriptler”或“Groovy Plugin”不打印任何內容。 我試圖打印出的腳本:
String jbN = System.getenv('JOB_NAME')
println jbN
我找到了解決方案:
腳本已執行但未打印到控制台輸出。 要將結果打印到控制台輸出,您需要編寫: manager.listener.logger.println("Some string")
而不是println
。
為了縮短它,請執行以下操作:
logger = manager.listener.logger.&println // and call like this: logger("test log message")
編輯:添加記錄器示例並描述如何獲取環境變量(以及如何不獲取它們)並希望為人們節省一些調試時間。 . . 這是簡單但尷尬的事情。
要獲得工作區,您可以通過管理器對象。 像這樣:
manager.build.workspace
要獲得 env vars ,這不起作用:
String jbN = System.getenv('JOB_NAME')
它顯示 jbN 為空。 這是有道理的,因為 JOB_NAME 不是實際的系統環境變量。
這也不適用於獲取環境變量,拋出異常:
${manager.envVars['WORKSPACE']}
這確實可以讓 jenkins 工作“環境變量”,如 WORKSPACE、JOB_NAME、BUILD_NAME:
def build = Thread.currentThread().executable workspace = build.getEnvVars()["WORKSPACE"]
使用示例,您可以像這樣在工作區中調用 groovy 腳本:
evaluate(new File(manager.build.workspace.toString() + "/dirinworkspace/scriptname.groovy"))
在您的情況下,您想使用Groovy 插件而不是Groovy Postbuild 插件。
Groovy Postbuild 插件用於更改構建結果( post build)。 Groovy 插件用於在您的作業中運行簡單的 Groovy 腳本。
單擊Manage Jenkins
--> Script Console
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.