GitHub Actions步骤输出在后续步骤不显示,该如何解决?
问题分析与解决
核心错误点
多余转义引号导致输出变量未正确识别
你在echo命令中使用了\"转义双引号,这会让输出内容变成"exit_code=0"而非exit_code=0。GitHub Actions的GITHUB_OUTPUT要求键值对是纯文本的key=value格式,带引号的内容无法被解析为有效输出变量,因此后续步骤读取不到exit_code的值。结果展示步骤仅读取单一步骤输出
Show Exit code步骤只引用了steps.step-fail.outputs.exit_code,当单元测试成功时,失败步骤未执行,自然没有输出;即使测试失败,也会因前面的转义问题导致变量为空。
修正后的YAML配置
- name: Run Unit Tests run: dotnet test .\app\tests --no-restore - name: Success Output if: success() id: step_pass run: echo "exit_code=0" >> $GITHUB_OUTPUT - name: Failure Output id: step-fail if: failure() run: echo "exit_code=1" >> $GITHUB_OUTPUT - name: Show Exit code if: always() run: echo "The exit code is ${{ steps.step_pass.outputs.exit_code || steps.step-fail.outputs.exit_code }}"
关键修正说明
- 移除
echo命令中多余的转义符,直接使用echo "exit_code=0"(或不带双引号的echo exit_code=0),确保输出为标准键值对格式,让GitHub Actions能正确解析输出变量。 - 在展示步骤中用
||逻辑运算符同时读取成功、失败步骤的输出——由于每次只会有一个步骤执行并生成输出,这样就能准确获取对应的exit_code值。
内容的提问来源于stack exchange,提问作者Rafa
相关产品推荐
相关产品推荐

