gpt4 book ai didi

shell - 如何让 Jenkins 2.0 在与结帐相同的目录中执行 sh 命令?

转载 作者:行者123 更新时间:2023-12-03 07:49:48 24 4
gpt4 key购买 nike

这是我的 Jenkins 2.x 管道:

node ('master'){
stage 'Checkout'
checkout scm
stage "Build Pex"
sh('build.sh')
}

当我运行这个管道时,结帐按预期将代码放入工作区,但是它并没有期望在工作区/中找到脚本(它真的在那里!),它在一个不相关的目录中查找:workspace@tmp/durable-d812f509。
Entering stage Build Pex
Proceeding
[Pipeline] sh
[workspace] Running shell script
+ build.sh
/home/conmonsysdev/deployments/jenkins_ci_2016_interns/jenkins_home/jobs/pex/branches/master/workspace@tmp/durable-d812f509/script.sh: line 2: build.sh: command not found

如何修改此 Jenkinsfile,以便 build.sh 在与我 checkout 项目源代码的目录完全相同的目录中执行?

最佳答案

您可以在 dir 中附上您的操作堵塞。

checkout scm
stage "Build Pex"
dir ('<your new directory>') {
sh('./build.sh')
}
... or ..
checkout scm
stage "Build Pex"
sh(""" <path to your new directory>/build.sh""")

...
<your new directory>是占位符您的实际目录。默认情况下,它是工作空间的相对路径。如果您确定代理上存在绝对路径,则可以定义绝对路径。

关于shell - 如何让 Jenkins 2.0 在与结帐相同的目录中执行 sh 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38143485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com