【问题标题】:How to get and save on txt all jenkins jobs logs如何获取并保存所有詹金斯工作日志的txt
【发布时间】:2019-07-30 05:12:08
【问题描述】:

我需要所有 jenkins 作业日志(作业生成日期、作业名称、标签和作业生成器用户)。如何检索此信息并保存 txt 文件。

【问题讨论】:

  • 在我们的 Jenkins 安装中,这些文件位于 jobs/<JOBNAME>/builds

标签: bash jenkins logging groovy


【解决方案1】:

您可以在作业完成后获取此信息,您只需在 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
                '''
            }
        }
    }
}

【讨论】:

  • 我们没有后期构建。我们必须将其作为管道中的一个阶段
  • 哦,所以答案是基于你的问题,你没有提到。
  • 顺便说一句,您可以在工作的任何阶段运行 bash。
猜你喜欢
  • 2013-04-24
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多