我想在表达式中把一个字符串数组连接成一个字符串。
所以我尝试使用join
函数,像这样:
env:
WINDOWS_DATABASE_PATH: ${{join(['file:', env.RUNNER_TEMP, 'windows_database.db'], '')}}
我希望得到这个作为变量:
file:somepathherewindows_database.db
但是我得到以下错误:
The workflow is not valid. .github/workflows/release.yml (Line: 12, Col: 26):
Unexpected symbol: '['. Located at position 6 within expression: join(['file:', env.RUNNER_TEMP, 'windows_database.db'], '')
我如何正确地使用这个函数与数组?文档声明该函数接受数组,但没有提供使用示例。
从文档和这个社区问题来看,语法似乎无法与join()
表达式一起使用。
但是,您可以通过添加一个中间作业来解决这个问题。
关于解,你算出来的解很接近。你可以这样修改:
env:
WINDOWS_DATABASE_PATH: file:${{ env.RUNNER_TEMP }}windows_database.db
另一种选择是使用format()
表达式,像这样:
env:
WINDOWS_DATABASE_PATH: ${{ format('file:{0}{1}', env.RUNNER_TEMP, 'windows_database.db') }}
或
env:
WINDOWS_DATABASE_PATH: ${{ format('file:{0}windows_database.db', env.RUNNER_TEMP) }}
我设法让它像这样工作。然而,这并不使用join
功能,所以如果有人知道如何在这里使用它,请发布答案。
env:
WINDOWS_DATABASE_PATH: 'file:${{github.workspace}}windows_database.db'
对于我的例子,请注意,我不再使用env.RUNNER_TEMP
,但github.workspace
是一个github上下文,而不是一个默认的github环境变量,这对我不起作用。