Jenkins管道,是否有方法从控制台输出设置环境变量

yhived7q  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(165)

我的jenkinsfile包含两个阶段,构建和上传&扫描(veracode用于静态扫描)。我的控制台输出将包含如下内容:build_id=“21682834” 指veracode扫描ID。
有人能帮忙找到这个数字并将其设置为环境变量吗?

uqdfh47h

uqdfh47h1#

检查以下代码。

def consoleLog = Jenkins.getInstance().getItemByFullName(env.JOB_NAME).getBuildByNumber(Integer.parseInt(env.BUILD_NUMBER)).logFile.text

def buildId = (consoleLog =~ 'build_id="(.*)"')[0][1]
echo "build_id: $buildId"
env.build_id = buildId

用于测试的完整管道。

pipeline {
    agent any
    stages {
        stage('Hello') {
            steps {
                script {
                    echo "Something"
                    echo "Something"
                    echo "Something"
                    echo "Something"
                    echo 'build_id="21682834"'
                    echo "Something"
                    echo "Something"
                    def consoleLog = Jenkins.getInstance().getItemByFullName(env.JOB_NAME).getBuildByNumber(Integer.parseInt(env.BUILD_NUMBER)).logFile.text

                    def buildId = (consoleLog =~ 'build_id="(.*)"')[0][1]
                    echo "build_id: $buildId"
                    env.build_id = buildId
                }
            }
        }
    }
}

相关问题