Github Actions运行Laravel工作流报JToken错误 如何配置多服务器部署矩阵
报错原因
你遇到的Error reading JToken from JsonReader. Path '', line 0, position 0错误,核心是fromJson解析器读取到了空值或者格式非法的JSON字符串,问题出在Export deployment matrix步骤的JSON输出逻辑:
- 手动用
echo + sed处理JSON字符串,很容易出现转义错误、内容丢失的问题 - 你使用的
::set-output语法已经被Github官方弃用,容易出现输出异常
修复方案
直接替换create-deployment-artifacts job 中的Export deployment matrix步骤即可,使用runner默认预装的jq工具来压缩输出JSON,配合官方推荐的GITHUB_OUTPUT传递参数:
- name: Export deployment matrix id: export-deployment-matrix run: | echo "deployment-matrix=$(jq -c . server_config.json)" >> $GITHUB_OUTPUT
可选调试步骤
如果修改后依然有问题,可以在上述步骤后添加调试步骤,确认输出的JSON格式是否正确:
- name: Debug matrix output run: echo "${{ steps.export-deployment-matrix.outputs.deployment-matrix }}"
修改后工作流就可以正常读取server_config.json中的服务器配置,自动填充到部署矩阵中实现多服务器批量部署。
内容的提问来源于stack exchange,提问作者anon00978
相关产品推荐
相关产品推荐

