Разобрать задание jenkins, чтобы получить последние несколько строк и передать его как переменную окружения jenkins

Попытка опубликовать журнал Дженкинса в конечной точке покоя. Следующая переменная не разрешается ${BUILD_LOG, maxLines=50, escapeHtml=false}

Есть ли какой-нибудь прямой способ получить последние 50 строк из сборки проекта и установить его как переменную среды jenkins?

1 ответ

Используя плагин groovy, я смог установить логи для параметров сборки jenkins. Хотя это дает последние символы из журналов сборки Дженкинса. Это может быть улучшено в дальнейшем

import hudson.model.*
def build = Thread.currentThread().executable

def logFile=manager.build.logFile.text

def addOrReplaceParamValue = { String name,String value ->
    def npl = new ArrayList<StringParameterValue>()
    def pv = new hudson.model.StringParameterValue(name,value);
    npl.add(pv);
    def newPa = null
    def oldPa = build.getAction(hudson.model.ParametersAction.class)
    if (oldPa != null) {
        build.actions.remove(oldPa)
        newPa = oldPa.createUpdated(npl)
    } else {
        newPa = new hudson.model.ParametersAction(npl)
    }
    build.actions.add(newPa);       
};  



if (logFile) {
 def buildMsg;   
def buildStatus;
if(!logFile.contains("BUILD SUCCESS")){
 buildMsg=logFile[-200..-1]
buildStatus="FAILED"
}else{
buildMsg="build successful..."
buildStatus="SUCCESSFUL"
}
addOrReplaceParamValue("message",buildMsg);
addOrReplaceParamValue("status", buildStatus);
}
Другие вопросы по тегам