Ответ @ takehin в порядке, если у вас есть доступ к файлу build.xml, но это может сломаться, особенно если вы строите на подчиненном узле (так как ведомое устройство не имеет ссылочного файла build.xml).
не бойся, потому что вы можете получить доступ к этой информации через Jenkins напрямую, используя его удаленный API доступа:
https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
Например:
http://<host>/jenkins/job/<job_name>/lastSuccessfulBuild/api/xml
(даст вам содержимое XML. .. вы могли бы заменить xml на json, чтобы получить 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|'
Так, натягивая все это вместе, вы можете в конечном итоге с (относительно) простой скрипт, чтобы получить последнюю хорошую ревизию хэш от Jenkins:
#!/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 - гораздо лучший ответ –