我在跑步
sh "terraform fmt -list=true -write=false -diff=true -check=true"
在Jenkins管道中,并收到以下奇怪的错误消息:
错误:由于以下原因导致Terraform Lint失败:hudson.AbortException:脚本返回了退出代码3 完成:失败
如果我只是在没有管道的情况下运行terraform fmt ...
,那就可以了。关于如何解决这个奇怪的错误有什么建议吗?
答案 0 :(得分:1)
如Release Notes for Terraform 0.10.5(但文档中未提及)所述,-check
参数
如果需要更改格式,则使其返回非零退出状态
在本地运行它时,它不会输出任何错误,但是如果以后再检查退出代码echo $?
,它将再次为3
。
但是,在Jenkins中,任何返回非零状态的sh
步骤都被视为失败。因此,您要么删除-check
选项,要么正确处理它,即
def fmtStatus = sh "terraform fmt -list=true -write=false -diff=true -check=true"
if (fmtStatus == 0) {
echo "All correct"
} else {
echo "Changes necessary"
}