我不知道这里是否有一个问题在我的一个步骤关于github- workflowjob。
步骤如下:
- name: check_tf_code
id: tf_check
run: |
terraform fmt -check
echo '::set-output name=bash_return_Value::$?'
,此步骤在日志中的错误输出为:Error: Process completed with exit code 3
这里可能有什么问题?GitHub是否无法为$?
进行bash评估以获得提示上次(terraform)命令是否成功?
运行步骤使用set -eo pipefail
运行(参见文档);这意味着如果任何命令具有非零退出状态,则该作业将终止,包括当该命令是管道的一部分时。
在您的示例中,这意味着如果terraform fmt -check
具有非零退出状态,则永远不会运行下一行。
那么,您的输出将是字面上的$?
,因为Bash不会在单引号中展开任何内容。你必须使用
echo "::set-output name=bash_return_Value::$?"
但是你已经知道,当这行被击中时,$?
的值是0
。
如果您想在命令失败时做一些事情,您可以执行
if ! terraform fmt -check; then
# Do something
fi
因为if
条件不会触发set -e
行为。