【发布时间】:2019-07-30 05:12:08
【问题描述】:
我需要所有 jenkins 作业日志(作业生成日期、作业名称、标签和作业生成器用户)。如何检索此信息并保存 txt 文件。
【问题讨论】:
-
在我们的 Jenkins 安装中,这些文件位于
jobs/<JOBNAME>/builds
标签: bash jenkins logging groovy
我需要所有 jenkins 作业日志(作业生成日期、作业名称、标签和作业生成器用户)。如何检索此信息并保存 txt 文件。
【问题讨论】:
jobs/<JOBNAME>/builds
标签: bash jenkins logging groovy
您可以在作业完成后获取此信息,您只需在 Post-build-action 中运行 bash 脚本。读取每个信息并写入同一工作区中的文本文件。最后,所有已写入文本文件的内容都会打印出来。
echo "Hello from jenkins Job, Testing Logs and job info"
echo "Jobe Name = ${JOB_NAME}" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Jobe BUILD_TAG = ${BUILD_TAG}" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Jobe BUILD_ID = ${BUILD_ID}" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Jobe Started_by_user= $(cat ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/log | grep "Started by user")" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Full Job logs= $(cat ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/log)" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "*************************************** Job info has been write to ${WORKSPACE}/${BUILD_NUMBER}-log.txt ************************"
echo "*************JOB INFO IS*********************************"
cat ${WORKSPACE}/${BUILD_NUMBER}-log.txt
然后您可以检查您的作业的控制台日志。
更新: 这是使用最简单的管道示例使其工作的方法。
pipeline {
agent none
stages {
stage ('Hello') {
agent any
steps {
echo 'Hello, '
sh '''#!/bin/bash
echo "Hello from jenkins Job, Testing Logs and job info"
echo "Jobe Name = ${JOB_NAME}" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Jobe BUILD_TAG = ${BUILD_TAG}" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Jobe BUILD_ID = ${BUILD_ID}" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Jobe Started_by_user= $(cat ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/log | grep "Started by user")" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "Full Job logs= $(cat ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/log)" >> ${WORKSPACE}/${BUILD_NUMBER}-log.txt
echo "*************************************** Job info has been write to ${WORKSPACE}/${BUILD_NUMBER}-log.txt ************************"
echo "*************JOB INFO IS*********************************"
cat ${WORKSPACE}/${BUILD_NUMBER}-log.txt
'''
}
}
}
}
【讨论】: