2016-05-19 104 views
0

我在jenkins中创建了免费样式项目来安装msi安装程序。自由式项目有批处理命令作业在主站但不在从站Jenkins

  • 以字符串作为参数的参数化作业。
  • 限制,其中该项目可以运行已启用,选择标签
  • 在构建步骤中选择“已执行Windows批处理命令”

批处理命令

@ECHO OFF 

IF NOT EXIST "C:\Build\Sample_%buidVersion%.msi" (
echo "The specified build does not exist in path" 
EXIT /B 1 
) ELSE (
echo "Installation of build" %buidVersion% "is started" 
START "" /WAIT msiexec.exe /i "C:\\Build\\Sample_%buidVersion%.msi" /L*V "C:\package.log" ADDSOURCE=ALL /qn 
) 

IF %errorlevel% NEQ 0 (
echo "Error in installation, Please check C:\package.log for more details" 
) ELSE (
echo "The build" %buidVersion% "installation is successful" 
) 
EXIT 

当我在不应用'限制可以运行此项目的地方已启用并选择标签'的情况下在主服务器中执行此操作通过在主服务器上运行而在en abling这个并在奴隶执行它说错误,因为,

“指定的版本不存在于路径。”
构建步骤“执行Windows批处理命令”标志着建设成为失败

+0

你是否检查过你的slave,文件是否存在:“C:\ Build \ Sample_%buidVersion%.msi”? 也 - 命令的输出与命令本身之间有区别 - 确定你是从同一个地方拿走它的? 您也没有指定%buildVersion%从何处获取或如何在工作空间中创建msi文件 – Dvir669

+0

是的,从属拥有该文件。错误的输出错误,现在纠正。 %buildVersion%是调用作业时提供的参数。 MSI文件现在手动复制到该位置.. – Deva

+0

我可以问你添加echo“C:\ Build \ Sample_%buidVersion%.msi”,cd C:\ Build,dir,并将输出与文件比较,重新找? – Dvir669

回答

0

最好的办法调试是echo命令看到故障点是你使用的参数。

添加在脚本的开头:

  • 回声 “C:\建立\ Sample_%buidVersion%的.msi”
  • CD C:\构建
  • DIR

并检查您要查找的文件是否在正确的位置并且名称正确。 祝你好运!

相关问题