Jenkins Pipeline中添加pwsh可选参数returnStdout的语法求助
解决Jenkins Pipeline中PowerShell脚本无成功确认输出的问题
要让Jenkins捕获并显示PowerShell脚本的执行输出,你需要正确使用pwsh步骤的returnStdout参数,同时确保脚本本身产生可捕获的输出。以下是修改后的完整Pipeline:
pipeline { agent any environment { CRED_APP_CATALOG = credentials('id-app-tenant') } stages { stage('ConnectToApp'){ steps { script{ // 启用returnStdout捕获脚本输出,赋值给变量 def scriptOutput = pwsh( script: ''' $cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $env:CRED_APP_CATALOG_USR , $(convertto-securestring $env:CRED_APP_CATALOG_PSW -asplaintext -force) Connect-PnPOnline -Url $env:app_catalog_path -Credentials $cred // 添加-Verbose让Add-PnPApp输出详细操作日志 Add-PnPApp -Path "./sharepoint/solution/samplesolution.sppkg" -Publish -Overwrite -Verbose ''', returnStdout: true ) // 在Jenkins控制台打印捕获到的输出 echo scriptOutput } } } } }
关键调整说明:
returnStdout: true参数:这是Jenkinspwsh步骤的内置参数,设置为true后,PowerShell脚本的标准输出会被捕获并作为返回值返回给Groovy变量。- 捕获输出并打印:将
pwsh步骤的返回值赋值给scriptOutput变量,再用echo命令输出到Jenkins控制台,这样就能看到脚本执行的详细信息。 - 添加
-Verbose参数:默认情况下Add-PnPApp可能不会输出明确的成功确认信息,加上-Verbose后会输出操作的详细日志,包括发布成功的提示,确保有内容可被捕获。
如果只需要简单的成功提示,也可以在PowerShell脚本末尾手动添加输出语句:
Write-Host "应用包发布覆盖操作执行完成"
这样即使没有-Verbose,也能在Jenkins控制台看到明确的成功标识。
内容的提问来源于stack exchange,提问作者adeniran827
相关产品推荐
相关产品推荐

