@ takeshin的答案是好的,如果你有權訪問build.xml文件,但這可能會中斷,特別是如果你正在建立一個從屬節點(因爲奴隸沒有引用的build.xml)。
不要怕,因爲你可以通過詹金斯直接訪問這些信息,利用其遠程訪問API:
https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
例如:
http://<host>/jenkins/job/<job_name>/lastSuccessfulBuild/api/xml
(會給你的XML內容。例如,您可以用json替換xml來取回json內容而不是XML)。
請注意,如果您已將Jenkins實例設置爲需要,您可能需要使用身份驗證。再次,不要害怕:https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients
然後,這是一個簡單的問題來解析你想要的XML。事情是這樣的,也許:
curl --silent --user $USER:$API_TOKEN $URL | grep "<lastBuiltRevision>" | sed 's|.*<lastBuiltRevision>.*<SHA1>\(.*\)</SHA1>.*<branch>.*|\1|'
所以,拉在一起,您可以結束了一個(相對)簡單的shell腳本來檢索詹金斯最後一次正確的修改散列:
#!/bin/sh
GIT_LOG_FORMAT="%ai %an: %s"
USER=<username>
API_TOKEN=<api_token>
LAST_SUCCESS_URL_SUFFIX="lastSuccessfulBuild/api/xml"
#JOB_URL gets populated by Jenkins as part of the build environment
URL="$JOB_URL$LAST_SUCCESS_URL_SUFFIX"
LAST_SUCCESS_REV=$(curl --silent --user $USER:$API_TOKEN $URL | grep "<lastBuiltRevision>" | sed 's|.*<lastBuiltRevision>.*<SHA1>\(.*\)</SHA1>.*<branch>.*|\1|')
# Pulls all commit comments since the last successfully built revision
LOG=$(git log --pretty="$GIT_LOG_FORMAT" $LAST_SUCCESS_REV..HEAD)
echo $LOG
乾杯,
Levi
+1 - 好多瞭解答案 – 2014-05-14 22:38:17