2015-11-02 55 views
0

我繼承了詹金斯服務器,所以我試圖確定發生故障的條件構建步驟的目的:

enter image description here

運行構建產生此異常:

Exception caught evaluating condition: [org.jenkinsci.plugins.tokenmacro.MacroEvaluationException: Unrecognized macro 'GitLastCommit' in '${GitLastCommit}!=e2859cd109f46e889da99391f149ea68c20b1c75'], action = [Don't run] 

所以GIT_COMMIT值填充,但GitLastCommit沒有被填滿。

由於它不起作用,我想知道如何繼續。

  1. 檢查這個的目的是什麼?
  2. 如果我應該保留它,那麼我如何確保GitLastCommit獲得正確的價值?
+0

您可以注入環境變量GitLastCommit並在開始時分配所需的值。 –

+0

是的,這是事實,但我不知道該值應該是什麼。 – kraftydevil

+1

然後你不能使用這個.. !!!或者,您可以在預構建過程中運行python/perl腳本,該腳本從存儲庫中提取最後一個提交ID,並創建一個環境變量GitLastCommit並分配值。所以,當這一步運行時,它將具有價值。 –

回答

0

Jenkins沒有得到GitLastCommit變量的值,這就是你得到上述錯誤的原因。

或者你可以做的是運行在python下面的命令,

git log --pretty="%H" 

上面的命令基本上是給當前庫中所有提交的ID。

你可以把一個列表(python)。

使用os模塊在Python中創建一個名爲GitLastCommit一個新的環境變量,

os.environ["GitLastCommit"] = <<Assign the required value from the list depending on your requirement>> 

然後inject this environment變量,這樣就可以別的地方使用這個值。

相關問題