脚本在Windows中运行但在Jenkins中失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脚本在Windows中运行但在Jenkins中失败相关的知识,希望对你有一定的参考价值。
我有一个bash脚本:
C:/Jenkins/workspace/xmlstarlet-1.6.1-win32/xmlstarlet-1.6.1/xml.exe ed -L -s "/Package/types[name='$TYPENAME']" -t elem -n members -v "$ENTITY" $SCRIPTFILE
C:/Jenkins/workspace/xmlstarlet-1.6.1-win32/xmlstarlet-1.6.1/xml.exe ed -L -s "/Package" -t elem -n types -v "" $SCRIPTFILE
在xml中插入特定类型的节点,这在本地运行正常,但是当尝试通过任何脚本运行时它会失败:
Ant脚本:
<exec executable="C:Program FilesGitinash.exe" osfamily="windows">
<arg value="generate_package.sh" />
<arg value="C:/Jenkins/workspace/TrailheadBranchDemo/final.txt" />
<arg value="package" />
<arg value="C:/Jenkins/workspace/deploy/src" />
</exec>
错误消息:无效的表达式:C:/ Program Files / Git / Package
它无法选择/Package
或/Package/types[not(*)]
表达。
答案
问题是:
在Windows上,bash脚本的工作原理如下:
$ C:/Jenkins/workspace/xmlstarlet/xmlstarlet/xml.exe ed -L -i "Package" -t attr -n xmlns -v "http://soap.sforce.com/2006/04/metadata" C:/Jenkins/workspace/deploy/src/package.xml
而不是这个:
$ C:/Jenkins/workspace/xmlstarlet/xmlstarlet/xml.exe ed -L -i '/Package' -t attr -n xmlns -v "http://soap.sforce.com/2006/04/metadata" C:/Jenkins/workspace/deploy/src/package.xml
在Windows中,/Package
不被很好地识别。
以上是关于脚本在Windows中运行但在Jenkins中失败的主要内容,如果未能解决你的问题,请参考以下文章
grunt karma 覆盖在 jenkins 上失败,但在 windows/unix 上有效
Selenium 测试在本地工作,但在 Jenkins 中失败
在 OSX 上运行但在 Windows 上失败的脚本 [重复]
Jenkins webbook 在 Bitbucket 中失败,但在 curl 中工作正常