You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Jenkins流水线指定阶段中某步骤的控制台输出?

Jenkins流水线获取指定阶段特定步骤控制台输出实现方案

方案1:实时捕获当前步骤输出(推荐)

如果是需要捕获正在执行的步骤输出,直接在对应步骤中使用returnStdout参数即可,适用于sh、bat、powershell等原生执行步骤:

pipeline {
    agent any
    stages {
        stage('代码构建') {
            steps {
                script {
                    // 捕获shell步骤输出,trim()移除末尾多余换行
                    def buildLog = sh(
                        script: 'mvn clean package -DskipTests',
                        returnStdout: true
                    ).trim()
                    // 存入环境变量,供后续阶段调用
                    env.BUILD_LOG_PART = buildLog
                }
            }
        }
        stage('发送通知') {
            steps {
                script {
                    // 按需处理日志,比如提取构建耗时、错误信息等核心内容
                    def sendContent = env.BUILD_LOG_PART.findAll(/Build Success.*Time: [0-9]+s/).join('\n')
                    // 发送邮件
                    emailext(
                        to: 'your@mail.com',
                        subject: '构建结果通知',
                        body: "构建核心输出:\n${sendContent}"
                    )
                }
            }
        }
    }
}

方案2:获取已完成阶段的步骤输出

如果需要捕获已经执行完成的其他阶段的步骤输出,可以通过构建日志过滤的方式实现:

  1. 先在目标步骤的首尾加上唯一标识,方便后续过滤:
stage('自动化测试') {
    steps {
        echo '=== TEST_STEP_START_MARK ==='
        sh 'pytest -v test/*.py'
        echo '=== TEST_STEP_END_MARK ==='
    }
}
  1. 在需要获取输出的阶段调用API拉取全量日志,过滤得到目标内容:
// 拉取当前构建最新的1000行日志,可按需调整行数
def fullLog = currentBuild.rawBuild.getLog(1000).join('\n')
// 正则匹配两个标识之间的内容
def testLog = (fullLog =~ /=== TEST_STEP_START_MARK ===([\s\S]*?)=== TEST_STEP_END_MARK ===/)[0][1].trim()

注意:调用currentBuild.rawBuild相关方法需要先在Jenkins的「Manage Jenkins -> In-process Script Approval」中批准对应方法的调用权限。如果日志包含ANSI颜色码,可以用fullLog.replaceAll(/\u001B\[[0-9;]*m/, '')清理后再处理。

注意事项

  • 第三方插件提供的自定义步骤如果没有returnStdout参数,优先使用方案2实现。
  • 不要直接将全量日志作为邮件正文发送,避免因内容过大触发邮件服务器限制,提前过滤只保留需要的核心内容。
  • 如果流水线存在重启、断点续跑的情况,需要适当调整getLog()方法的拉取行数,避免遗漏目标阶段的日志。

内容的提问来源于stack exchange,提问作者Bhaskar Phukan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:18:00