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如何做到这一点,有可能吗。
这是一个愚蠢的例子:
$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。默认情况下,它显示在控制台中,但您可以在父进程中接收输出并进行进一步处理。
如果这不是你想要的,你的问题就必须更具体。提供一些您迄今为止尝试过的代码。
| 归档时间: |
|
| 查看次数: |
1469 次 |
| 最近记录: |