GitHub Actions多服务器部署时报JsonReader读取JToken错误如何解决
错误根因
你收到的报错说明fromJson()接收到的输入是空值,也就是needs.create-deployment-artifacts.outputs.deployment-matrix没有正确输出JSON内容,不是你的JSON本身语法有问题,是输出传递环节出了问题。
解决方案
- 首先确认
deployment-config.json已经提交到仓库根目录,你可以在Export deployment matrix步骤前加一步执行ls -la,确认工作目录下存在该文件。 - 替换弃用的
::set-output语法,新版GitHub Actions runner已经不再支持该输出方式,改用GITHUB_OUTPUT环境变量写入输出,修改你的Export deployment matrix步骤代码如下:
- name: Export deployment matrix id: export-deployment-matrix run: | # 用jq压缩JSON为单行,避免换行转义问题 JSON=$(jq -c . ./deployment-config.json) JSON="${JSON//'%'/'%25'}" JSON="${JSON//$'\n'/'%0A'}" JSON="${JSON//$'\r'/'%0D'}" echo "deployment-matrix=$JSON" >> $GITHUB_OUTPUT
- 临时添加调试步骤验证输出:在
create-deployment-artifactsjob的末尾加一步,打印输出值确认是否正确:
- name: Debug output run: echo "${{ steps.export-deployment-matrix.outputs.deployment-matrix }}"
- 额外注意:你的JSON配置里的服务器IP
216.656.30.240是无效IP(IPv4每段最大值为255),当前报错解决后部署时会出现连接失败问题,需要修改为正确的服务器IP。
内容的提问来源于stack exchange,提问作者Isuru
相关产品推荐
相关产品推荐

