2012-07-17 29 views
7

靠近我的編譯控制檯的頂部,我看到一個「Last Built Revision:」帶有一個修訂號#。我如何在構建腳本中訪問最後一次構建的rev#?我正在使用Gradle,但我認爲這不重要。詹金斯是否在系統屬性中提供了最後一次生成的rev#?當然這必須是微不足道的,從我的構建腳本訪問...如何根據jenkins訪問上次構建的修訂版?

回答

1

我不認爲Git插件可出口的最後修訂建作爲一個環境變量,但信息容易獲得,使用簡單的shell命令,如:

curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()" 

BUILD_URL總是指向構建自己的網頁和信息的休息似乎使用XML API可用。

2

目前集結號作爲詹金斯變量BUILD_NUMBER提供

  • 在Unix可以設置爲你爲$ { BUILD_NUMBER}
  • 在Windows中可用的是%BUILD_NUMBER%

變量的完整列表,我
HTTP:提供您的詹金斯的服務器上,在s // [您的詹金斯服務器]/ENV-vars.html

+0

評論這裏,因爲這是獲得詹金斯內部編號的正確答案。但是,如果您的問題是關於Mercurial存儲庫的版本號,那麼您需要從克隆存儲庫「hg id -n」中執行以下命令,然後適當地指導輸出(即將其讀入一個變量或日誌文件 – 2012-07-18 13:15:23

12

您可以直接訪問Jenkins BUILD_NUMBER作爲系統環境變量。

task getBuildNumber << { 
    ext.env = System.getenv() 
    ext.buildNumber = env.BUILD_NUMBER?.toInteger() 
    println "Build Number: $buildNumber" 
} 
+0

'env.BUILD_NUMBER'不包含VCS版本,但是Jenkins的版本號在某些情況下很有用,但據我所知它不是OP所要求的 – 2017-12-15 13:37:41

7

原來,Git插件會將最後的構建版本導出爲環境變量。因此,而不是使用公認的答案:

curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()" 

你可以用這個來代替:

GIT_PREVIOUS_COMMIT 

一個failproof方式,看看到底什麼是提供給您的構建腳本是選擇Add Build Step > Execute Shell則只需添加以下:

export 

查看你的控制檯(對於構建),你應該看到很多偉大的環境變量可供你使用。這是提供給我的混帳相關的變量(使用Git的插件)分別爲:

GIT_AUTHOR_EMAIL 
GIT_AUTHOR_NAME 
GIT_BRANCH 
GIT_COMMIT 
GIT_COMMITTER_EMAIL 
GIT_COMMITTER_NAME 
GIT_PREVIOUS_COMMIT 
GIT_URL 

最後,以查看可用的環境變量的不全面列表,你也可以去這個網址:http://[your-jenkins-domain-and-port]/env-vars.html

+0

請注意,這些變量不是可用(尚未)在管道插件下,等待解決[JENKINS-35230環境變量的git插件不能在管道腳本中工作](https:// issues。jenkins-ci.org/browse/JENKINS-35230) – 2016-10-14 04:48:37

相關問題