GitHub Actions读取ARM模板JSON文件变量时报文件不存在如何解决
报错原因
- 你的
jq命令参数中多写了冗余的at关键字,jq工具会按顺序读取位置参数中的文件路径,误将at识别为第一个要解析的目标文件,而你的项目中不存在该文件,因此触发报错。
解决方法
直接删除jq命令中多余的at参数即可,注意如果需要在后续步骤引用该输出,要给当前步骤添加id属性,修正后的对应步骤代码如下:
- name: get storage account id: get-storage-name run: | echo ::set-output name=storage-account-name::$(jq '.parameters.storage_account_name.value' ./armtemplates/sac/parameters-example.json)
可选优化
你当前使用的::set-output是GitHub Actions已废弃的旧语法,新版执行环境推荐直接写入$GITHUB_OUTPUT环境变量对应的文件,兼容性更强:
- name: get storage account id: get-storage-name run: | echo "storage-account-name=$(jq '.parameters.storage_account_name.value' ./armtemplates/sac/parameters-example.json)" >> $GITHUB_OUTPUT
内容的提问来源于stack exchange,提问作者mbsouksu
相关产品推荐
相关产品推荐

