如何在GitHub Actions表达式中正确使用join函数拼接数组?
解决GitHub Actions中join函数拼接字符串数组的错误
你遇到的问题是因为GitHub Actions表达式解析器不支持直接在join函数中使用[]字面量创建数组(部分旧版本环境存在这个限制)。可以通过以下两种方式解决:
方法1:直接传递多个字符串参数
GitHub Actions的join函数支持直接接收多个字符串参数,最后一个参数作为分隔符,这种写法兼容性更好:
env: WINDOWS_DATABASE_PATH: ${{join('file:', env.RUNNER_TEMP, '\windows_database.db', '')}}
方法2:用list()函数创建数组
如果需要显式使用数组形式,可以通过list()函数构造数组后传入join:
env: WINDOWS_DATABASE_PATH: ${{join(list('file:', env.RUNNER_TEMP, '\windows_database.db'), '')}}
额外注意:YAML转义问题
如果你的路径中使用了\,在YAML双引号字符串中需要转义为\\,否则会被解析为特殊字符。推荐用单引号包裹路径字符串避免转义:
env: WINDOWS_DATABASE_PATH: ${{join('file:', env.RUNNER_TEMP, '\\windows_database.db', '')}} # 或单引号形式 env: WINDOWS_DATABASE_PATH: ${{join('file:', env.RUNNER_TEMP, '\windows_database.db', '')}}
修改后即可得到期望的结果:file:some\path\here\windows_database.db
内容的提问来源于stack exchange,提问作者Woww
相关产品推荐
相关产品推荐

