在GitHub Actions中执行dbt run传递vars遇YAML语法错误求助
解决GitHub Actions中dbt run传递变量的YAML语法错误问题
问题原因
你遇到的语法错误是因为YAML会自动解析包含冒号的内容为键值对结构,原命令里的{ic_schema: data_dev}中的冒号被YAML误判,导致整行语法不符合规范。
可行的解决方法
方法1:用单引号包裹整个命令,内部单引号转义
在YAML中,用单引号包裹整行命令后,内部的单引号需要用两个单引号转义,这样YAML就不会解析内部的冒号:run: 'dbt run --vars ''{ic_schema: data_dev}'''方法2:用双引号包裹整个命令
双引号包裹整行后,内部的单引号可以正常保留,YAML不会解析内部的冒号结构:run: "dbt run --vars '{ic_schema: data_dev}'"方法3:将命令拆分为数组形式
YAML数组的每个元素会被当作独立字符串,不会触发冒号的键值对解析:run: - dbt - run - --vars - '{ic_schema: data_dev}'方法4:通过环境变量传递变量内容
先把变量内容定义为环境变量,再在命令中引用,彻底规避YAML的解析问题:env: DBT_VARS: '{ic_schema: data_dev}' run: dbt run --vars "$DBT_VARS"
内容的提问来源于stack exchange,提问作者Bunny Talks
相关产品推荐
相关产品推荐

