gpt4 book ai didi

Jenkins 管道 "cd"命令不起作用, "cd"vs "dir"?

转载 作者:行者123 更新时间:2023-12-02 07:18:11 25 4
gpt4 key购买 nike

我遇到的问题是 cd不在窗口节点中工作:

node("Window-node") {                       

stage('unstash'){
echo 'unstash..'

deleteDir()

unstash name: uat_stash
unstash name: prd_stash

bat "cd ${path}"
bat "mkdir ${params.tag_name}"

}
}

问题发生在 bat "cd ${path}" ,它并没有真正去到具体的路径,所以 mkdir失败。
path位于 jenkins 工作区之外的某个地方,当我在下面使用时,它工作正常:
dir("${path}") {
bat "mkdir ${params.tag_name}"
}

我不太确定为什么,但我不喜欢使用 dir因为它会创建一个临时文件夹 xxx@tmp ,但在 Jenkins 工作完成后永远不会清理。

有谁知道为什么 cd失败?或者,我可以使用 dir不创建 Jenkins 临时文件夹?

最佳答案

第一条命令 bat "cd ${path}"做你期望的。然而,第二个bat step 不在上一步的上下文中运行,因此它从工作程序节点根工作区目录开始。

您可以通过更换两个 bat 来解决它使用单个多行脚本的步骤,例如

node("Window-node") {

stage('unstash'){
echo 'unstash..'

deleteDir()

unstash name: uat_stash
unstash name: prd_stash

bat """
cd ${path}
mkdir ${params.tag_name}
""".stripIndent().trim()
}
}

关于Jenkins 管道 "cd"命令不起作用, "cd"vs "dir"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54979624/

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