这是我的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?
您可以将动作括起来dir 。
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>是您实际目录的占位符。默认情况下,它是工作空间的相对路径。如果您确定代理中存在绝对路径,则可以定义绝对路径。
<your new directory>