我在将Jenk作为作业运行bash脚本时遇到问题(执行shell步骤)。基本上我现在将我的脚本缩小为一行来测试为什么Jenkins无法运行它。这是:
waxsim
所以这只是一行。当没有参数运行时,这应该给我这个输出:
No app-path was specified!
usage: waxsim [options] app-path
example: waxsim -s 2.2 /path/to/app.app
Available options are:
-s sdk Version number of sdk to use (-s 3.1)
-f family Device to use (-f ipad)
-e VAR=value Environment variable to set (-e CFFIXED_HOME=/tmp/iphonehome)
-a Available SDKs
-v path Output video recording at path
-h Prints out this wonderful documentation!
Jenkins作为jenkins用户运行。当作业运行时,它失败了:
+ waxsim
/var/folders/gx/t63prwt53w7gr2jjt9k66q9800009c/T/hudson4478539334800834890.sh:
line 3: waxsim: No such file or directory
Build step 'Execute shell' marked build as failure
当我手动执行waxsim
,以jenkins用户身份登录时,一切正常。它适用于机器上的每个用户。它仅在Jenkins作业中执行时不起作用。任何人都知道可能是什么问题?
我尝试指定waxsim
的完整路径,即:/usr/bin/waxsim
,但没有区别。
谢谢!
答案 0 :(得分:4)
当它在终端中运行时它起作用的原因并且在Jenkins运行时它没有被证明是微不足道的。
在终端我运行bash,而Jenkins正在使用shell。因此,将PATH导出到Jenkins的执行shell脚本解决了这个问题。
答案 1 :(得分:0)
只需将#!/bin/bash
添加到shell执行的顶部,即可获得所需的结果。