Jenkins 管道: Get build output from slave agent

标签 jenkins groovy jenkins-pipeline virtualbox jenkins-agent

背景

假设我有两项工作,一项是“管道工作”,一项是“构建工作”。 “管道作业”在 master 上运行,当然是一个管道(使用 groovy)。然后,对于管道中的构建部分,我使用在 Windows 上运行的从属设备,即“构建作业”,它负责构建我无法在主设备上执行的操作。主版也在 Windows 上运行,但缺少特定构建所需的一些软件。

问题

我有一个看起来像这样的常规脚本:

#!groovy
node {
    stage('Environment Preparation') {
        // fetches stuff and sets up the environment on master
    }
    stage('Unit Testing') {
        // some testing
    }
    stage('Build on Slave') {
        def slaveJob = build job: 'BuildJob'
    }
}

它工作正常,其中“BuildJob”是“限制该项目可以运行的位置”,即在从属设备上。

我的问题是我希望“BuildJob”的输出在管道日志中打印。您有一些巧妙的方法可以做到这一点吗?我对一切都持开放态度,所以如果您知道更聪明的方法来启动“BuildJob”等。我很乐意在这里。

最佳答案

已编辑 您必须在脚本批准下批准您想要访问的内容。不确定您是否真的需要 getRawBuild 但它有效。

Search through console output of a Jenkins job

#!groovy
node {
    stage('Environment Preparation') {
        // fetches stuff and sets up the environment on master
    }
    stage('Unit Testing') {
        // some testing
    }
    stage('Build on Slave') {
        def slaveJob = build job: 'BuildJob'
        println slaveJob.rawBuild.log
    }
}

jenkinsurl/scriptApproval/您批准以下内容:

method hudson.model.Run getLog
method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild

关于 Jenkins 管道: Get build output from slave agent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40805144/

相关文章:

Jenkins:将 GIT_BRANCH 环境变量传递给升级

android - 更新 studio 3.4 后找不到参数的 leftShift() 方法

jenkins - 如何正确设置默认值?

grails - 在Groovy Source文件夹中使用Grails 3服务的最佳方法是什么?

docker - 如何从文件加载 Jenkins 管道 (Jenkinsfile) 的 Docker 部分?

git - 你如何为 Jenkins 管道提取 git 提交者信息

Jenkins 并行声明式管道

git - 在 git 修订之间删除或修改的文件会自动从实例中删除

jenkins - jenkins 共享库中的库变量

jenkins - 在 Jenkins 中获取邮件正文中作业的 URL