unzip 无法删除 Jenkins Pipeline 中的目录

问题描述 投票:0回答:3

这就是我使用 Jenkins 运行 AWS terraform plan 时得到的结果。下面是我们正在使用的代码

错误:错误:无法删除旧的地形 是一个目录

代码: sh '''设置+x 卷曲 -L 'https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.zip' --输出 terraform.zip 解压-o terraform.zip echo“使用$(terraform -version)来自:$(which terraform)” ''' sh "terraform init -backend-config='bucket=${bucketName}'"

詹金斯错误:

+ set +x
after terraform download
Archive:  terraform.zip
error:  cannot delete old terraform
        Is a directory
[Pipeline] End of Pipeline
ERROR: script returned exit code 50
Finished: FAILURE

请提出更好的解决方案。

jenkins jenkins-pipeline
3个回答
0
投票

Unzip 拒绝覆盖上次运行时似乎仍位于工作区中的

terraform/
目录。

sh "rm -rf terraform/"
(或
unzip
)之前运行
cleanWs()


0
投票

您很可能有一个名为“terraform”的目录,其中包含 terraform 文件。然后它与 ZIP 存档中包含的文件“terraform”发生冲突。这就是解压失败的原因。


-1
投票
unzip -f terraform.zip

使用 -f 代替 -o

-f  freshen existing files, create none i.e unzip to replace the new files only
-n  never overwrite existing files         
-q  quiet mode (-qq => quieter)
-o  overwrite files WITHOUT prompting
© www.soinside.com 2019 - 2024. All rights reserved.