如何将JSON文件内容传入GITHUB_OUTPUT?已尝试方案报错
解决GitHub Actions中JSON内容存入GITHUB_OUTPUT的格式错误问题
问题出在JSON内容包含换行、空格或特殊字符,直接写入GITHUB_OUTPUT会违反其格式要求(输出值必须是单行,特殊字符需转义)。以下是两种可行的解决方法:
方法一:用jq压缩并转义JSON(推荐)
jq是处理JSON的工具,能将多行JSON压缩为单行并自动转义特殊字符,确保符合GITHUB_OUTPUT的格式规范:
# 读取JSON文件并压缩为单行 min_req=$(cat min-requirements.json | jq -c .) # 写入GITHUB_OUTPUT echo "min_req=$min_req" >> "$GITHUB_OUTPUT"
方法二:用sed替换换行符(无jq环境时使用)
如果环境没有jq,可以用sed将JSON中的换行符替换为转义的\n,把内容转为单行:
# 替换换行符为转义序列 min_req=$(cat min-requirements.json | sed -z 's/\n/\\n/g') # 写入GITHUB_OUTPUT echo "min_req=$min_req" >> "$GITHUB_OUTPUT"
后续引用说明
后续步骤中引用输出的写法保持不变,GitHub Actions会自动解析转义后的内容:
min-req-output: ${{ steps.get_min_requirement.outputs.min_req }}
内容的提问来源于stack exchange,提问作者omarkorety
相关产品推荐
相关产品推荐

