如何在上游作业中获取下游作业的控制台输出?

5 powershell groovy pipeline jenkins jenkins-pipeline

我试图找到一种解决方法,因为第一个问题仍然没有答案。 无法使用Jenkins的凭据运行Start-Job

我有作业A。作业A在服务器上启动Powershell脚本并显示一些输出。

我还有一个管道B,它在不同的服务器上运行作业A的多个副本。这是常规代码

stage 'Copy sources from Git'
build job: 'DeploymentJobs/1_CopySourcesFromGit'
stage 'Deploy to servers'
def servers = env.SERVERLIST.split('\n')
def steps =[:]

for (int i=0; i<servers.size(); i++) {
    def server = servers[i]
    def stepName = "running ${server}"
    steps[stepName] = {->
        echo server
        build job: 'DeploymentJobs/2_DeployToServer', parameters: 
[booleanParam(name: 'REBOOTAFTER', value: Boolean.valueOf(REBOOTAFTER)), 
string(name: 'SERVERNAME', value: server)]
    }

}

parallel steps
Run Code Online (Sandbox Code Playgroud)

在管道的输出中,我仅看到信息,而不是作业A的N个副本开始,但没有输出。我只想在管道B的控制台输出中看到作业A的所有实例的powershell输出。

我没有iedea如何做到这一点,有可能吗。

vee*_*efu 1

这是一个愚蠢的例子:

$myJobs = @()
$myJobs += Start-job -ScriptBlock { while (1) {Get-Item 'c:\*'; sleep 5}}
$myJobs += Start-job -ScriptBlock { while (1) {Get-Item 'c:\windows\*'; sleep 5}}

try {
    while(1)
    {
        $myJobs | Get-Job -HasMoreData $true | Receive-Job
    }
} finally {
    $myJobs | Stop-Job
    $myJobs | Remove-Job
}
Run Code Online (Sandbox Code Playgroud)

作业管道中的任何内容都会排队。该-HasMoreData状态指示作业具有可供读取的输出。父级使用 接收输出Receive-Job。默认情况下,它显示在控制台中,但您可以在父进程中接收输出并进行进一步处理。

如果这不是你想要的,你的问题就必须更具体。提供一些您迄今为止尝试过的代码。