Jenkins pipeline how to change to another folder
当前我正在使用Jenkins管道脚本。
要运行一个命令,我需要访问其工作区目录之外的文件夹。
我尝试了sh"cd $workspace/",但是它返回了当前的工作区文件夹。
如何更改到根工作区目录,然后cd到另一个文件夹。请帮忙。
您可以使用dir步骤,例如:
1 2 3
| dir("folder") {
sh"pwd"
} |
folder可以是相对路径或绝对路径。
- 但它将进入当前作业文件夹中。我想切换到jenkins工作区
-
你怎么回去向上?
-
@DanDan此dir步骤之外的所有内容都是"向上返回",另请参见Gonzalo Robert Diaz的答案/示例:stackoverflow.com/a/59776342/757308
-
请注意,在目录之外,目录已重置。它与shell中的cd directory不同。
使用WORKSPACE环境变量来更改工作空间目录。
如果使用Jenkinsfile,请使用以下代码:
1 2 3
| dir("${env.WORKSPACE}/aQA"){
sh"pwd"
} |
-
dir('aQA')以相同的方式工作。无需那种复杂性
dir包装器可以包装其他任何步骤,并且都可以在steps块内运行,例如:
1 2 3 4 5 6 7
| steps {
sh"pwd"
dir('your-sub-directory'){
sh"pwd"
}
sh"pwd"
} |
-
sh"$PWD"是不正确的命令,因为您正在尝试自行执行路径。
-
@GonzaloRobertDíazsh是Jenkins步骤,它执行您作为shell脚本传递的参数。如果您测试自己的代码,则会出现permission denied错误,因为$PWD无法执行。使用echo"$PWD"或sh"pwd"代替。另外,学会接受批评。