我有windows server
的Jenkins slave。我正在运行SSIS
deploy命令thought Powershell
:
$ISDeploymentWizard = Start-Process -FilePath ISDeploymentWizard.exe -ArgumentList '/Silent','/ModelType:Project','/SourcePath:"Integration Services\\bin\\Development\\Integration Services.ispac"',"/DestinationServer:${Env}",'/DestinationPath:"/SSISDB/TEST/DEVOPS"' -wait -PassThru -Credential $cred
$ISDeploymentWizard.WaitForExit()
$ISDeploymentWizard
字符串
问题是当我有一个错误时,我在Jenkins
控制台中看不到任何东西,因为silent
模式在ISDeploymentWizard
上工作得不太好。语法中的任何错误都会导致远程弹出一个带有错误的窗口。有什么办法可以让它也出现在我的控制台中吗?在目前的情况下,作业只是停留在这个阶段,我不得不手动中止它。我也试图使用powershell
超时,但它不工作,以及。任何想法?
我发现的最相关的线程是2015年的this,另一种方法建议here也是2015年的
1条答案
按热度按时间rqcrx0a61#
ISDeploymentWizard做它做的事情。它是一个预构建的可执行文件,看起来你不能对错误处理做太多的事情。
我建议采用不同的方法,使用Managed Object Model或TSQL部署路由。这样,您可以控制错误条件发生的情况。
托管对象模型
我的PS部署代码看起来像这样。它不包括参数等,但它是一个开始,你可以尝试/捕获
DeployProject
部分字符串
https://techcommunity.microsoft.com/t5/sql-server-integration-services/a-glimpse-of-the-ssis-catalog-managed-object-model/ba-p/387892的
TSQL部署
型
我假设Jenkins允许PS或SQL命令,所以这些命令应该可以工作,并且给予您更大的灵活性来检测部署问题,然后解决它们。