如何在“构建后操作”中获取Jenkins作业的构建日志的内容?

lmyy7pcs  于 2023-01-20  发布在  Jenkins
关注(0)|答案(1)|浏览(278)

我有一个运行特定作业的Jenkins版本2.375.1。
在作业的“生成步骤”部分,一个URL被打印到执行控制台(生成日志)。我正在尝试从生成日志中提取该URL,以便将该URL添加到我的生成后电子邮件(可编辑电子邮件通知)中。
此时如何获取构建日志的内容?

ar7v8xwq

ar7v8xwq1#

下面是一个完整的例子,在你的post步骤中使用正则表达式提取字符串。

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo "something else"
                echo 'my_url="https://google.com"'
                echo "something else"
            }

            post {
                success {
                    script {
                        def consoleLog = Jenkins.getInstance().getItemByFullName(env.JOB_NAME).getBuildByNumber(Integer.parseInt(env.BUILD_NUMBER)).logFile.text
                        // THis would extract "123456" from the console output my_url="1234567"
                        def url = (consoleLog =~ 'my_url="(.*)"')[0][1]
                        echo "URL is: $url"
                    }
                }
            }
        }
    }
}

相关问题