首页 > 解决方案 > Octopus Runbook 似乎忽略了 bash 退出代码

问题描述

我可能遗漏了一些明显的东西......

在简单的部署后检查中添加一些轻型自动化

但我无法获得失败的退出代码以使 Runbook 运行失败

我错过了什么?

url=$(get_octopusvariable "SmokeTestURL")
statusCode=$(curl -X POST \
  --silent \
  --output /dev/null \
  --write-out "%{http_code}" \
  --header "accept: application/json" \
  --header "Content-Type: application/json" \
  --data "..." \
  $url)
 
 echo $statusCode
 
 exitStatus=$(if [ $statusCode=200 ]; then echo 0; else echo 1; fi)
 exit $exitStatus

标签: bashsyntaxoctopus-deploy

解决方案


if [ $statusCode=200 ];

我认为这里的空格是强制性的。此外,您应该使用引号,以防 $statusCode 为空或包含空格。

您也可以使用更短的代码:

[ "$statusCode" = "200" ] && exit 0 || exit 1

推荐阅读