在管道Jenkinsfile中执行多个作业时,如何捕获给定构建的日志

时间:2019-06-26 15:17:56

标签: jenkins jenkins-pipeline

正如标题所述,我想捕获构建中所有阶段的日志,如下所示:

pipeline {
    agent any
    stages {
        stage('Build First Repo') {
            steps {
                build job: 'jobOne', parameters: [string(name: 'branch', value: "${params.branch}")], quietPeriod: 1
            }
        }
        stage ('Build Second Repo') {
            steps {         
                build job: 'jobTwo', parameters: [string(name: 'branch', value: "${params.someOtherBranch}")], quietPeriod: 1
            }
        }
        stage ('Deploy') {
            steps {
                build job: 'jobThree', parameters: [string(name: 'buildEnvironment', value: "${params.environment}")], quietPeriod: 1
            }   
        }
        stage ('Remote Build') {
            steps {
                build job: 'jobFour', parameters: [string(name: 'Hosts', value: "${params.hosts}")], quietPeriod: 1
            }
        }
    }
    post {
        always {
            mail to:me@mydomain.com, subject: "${currentBuild.currentResult} - ${currentBuild.fullDisplayName}", body:"...${currentBuild.rawBuild.getLog(100)}"
        }
    }
}

目前,我只能获得 pipeline 构建日志(我在post / always部分中通过电子邮件发送了该日志),这很有帮助,但还不够;我想从每个阶段获取日志。我想也许可以在每个阶段捕获它们并创建一个环境变量之类的东西,但是我不确定如何访问日志来构建这些作业。有人可以为我指出有关如何捕获这些工作日志的正确方向吗?

1 个答案:

答案 0 :(得分:0)

您可以在任何阶段之后添加帖子部分。 您可以在那里设置sendind电子邮件。 要从构建中发送单个电子邮件,可以使用stash / unstash命令。您可以在每个部分中保存日志,最后取消隐藏它们并发送电子邮件。