Ale*_*lex 14 git bash groovy jenkins
我正在编写一个管道作业,它将调用另一个脚本来执行.Jenkins文件和脚本存在于同一目录中,但作业无法找到要运行的脚本.
这是脚本的相关部分;
stage ('Update') {
try {
dir('jenkins/pipeline/update-jenkins-plugins-ppln') {
sh 'ls -l'
sh 'update-plugins.sh'
}
}
Run Code Online (Sandbox Code Playgroud)
返回以下错误;
[update-jenkins-plugins-ppln] Running shell script
+ ls -l
total 8
-rw-r--r-- 1 jenkins jenkins 2441 Dec 20 09:34 Jenkinsfile
-rwxr-xr-x 1 jenkins jenkins 506 Dec 19 14:06 update-plugins.sh
[Pipeline] sh
[update-jenkins-plugins-ppln] Running shell script
+ update-plugins.sh
/var/lib/jenkins/workspace/update-jenkins-plugins-ppln/jenkins/pipeline/update-jenkins-plugins-ppln@tmp/durable-11cefdd0/script.sh: 2: /var/lib/jenkins/workspace/update-jenkins-plugins-ppln/jenkins/pipeline/update-jenkins-plugins-ppln@tmp/durable-11cefdd0/script.sh: update-plugins.sh: not found
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用的路径是正确的,因为根据ls
我需要的文件update-plugins.sh
位于我已经修改过的目录中.但出于某种原因,当实际搜索脚本时,Jenkins正在添加@tmp/durable-8d48734f/script.sh
到路径上.
各种故障排除
为什么Jenkins添加@tmp位,有没有办法防止这种行为?