Jenkins Pipeline - 阅读前一阶段日志

2024-02-16

考虑一个有两个阶段的 Jenkins Pipeline,Stage A then Stage B.

在阶段 B 中,是否可以解析阶段 A 的日志中的某些特定文本?


Use tee将输出拆分为标准输出和文件。接下来解析文件中的文本。

STAGE_A_LOG_FILE = 'stage_a.log'

pipeline {
    agent any
    stages {
        stage('Stage A') {
            steps {
                script {
                    // tee log into file
                    tee(STAGE_A_LOG_FILE) {
                        echo 'print some Stage_A log content ...'
                    }
                }
            }
        }
        stage('Stage B') {
            steps {
                script {
                    // search log file for 'Stage_A'
                    regex = java.util.regex.Pattern.compile('some (Stage_A) log')
                    matcher = regex.matcher(readFile(STAGE_A_LOG_FILE))
                    if (matcher.find()) {
                        echo "found: ${matcher.group(1)}"
                    }
                }
            }
        }
    }
}

管道输出:

print some Stage_A log content ...
found: Stage_A
Finished: SUCCESS
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins Pipeline - 阅读前一阶段日志 的相关文章

随机推荐