terraform fmt在Jenkins管道中失败

时间:2018-07-10 16:47:03

标签: jenkins jenkins-pipeline terraform

我在跑步

sh "terraform fmt -list=true -write=false -diff=true -check=true"

在Jenkins管道中,并收到以下奇怪的错误消息:

  

错误:由于以下原因导致Terraform Lint失败:hudson.AbortException:脚本返回了退出代码3   完成:失败

如果我只是在没有管道的情况下运行terraform fmt ...,那就可以了。关于如何解决这个奇怪的错误有什么建议吗?

1 个答案:

答案 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"
}