【发布时间】:2020-05-05 15:56:44
【问题描述】:
我想在 GitHub Action 的 env: 部分设置环境变量并使用 Contexts and expression syntax for GitHub Actions。我试过这个:
jobs:
build:
runs-on: ubuntu-latest
env:
MYVAR: ${{ format('{0}:{1}', ${{ env.PATH }}, ${{ env.HOME }} ) }}
steps:
- name: Check environment
run: echo $MYVAR
这会导致错误消息:
### ERRORED 10:45:52Z
- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unexpected symbol: '${{'. Located at position 19 within expression: format('{0}:{1}', ${{ env.PATH
这个语法:
env:
MYVAR: ${{ format('{0}:{1}', {{ env.PATH }}, {{ env.HOME }} ) }}
导致错误:
### ERRORED 13:14:18Z
- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unexpected symbol: '{{'. Located at position 19 within expression: format('{0}:{1}', {{ env.PATH
和:
env:
MYVAR: ${{ format('{0}:{1}', env.PATH, env.HOME ) }}
导致错误:
### ERRORED 13:16:12Z
- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unrecognized named-value: 'env'. Located at position 19 within expression: format('{0}:{1}', env.PATH, env.HOME )
我知道How do i set an env var with a bash expression in GitHub Actions? 和Github Actions, how to share a calculated value between job steps? 中设置环境变量的解决方案,但我想了解表达式语法。
【问题讨论】:
-
你为什么把
${{放在${{里面?另请注意,format采用基于 0 的索引。 -
因为它在help.github.com/en/actions/… 下说:“上下文是访问有关工作流运行、运行器环境、作业和步骤的信息的一种方式。上下文使用表达式语法。{{
}}” -
该页面上的所有示例(包括使用上下文的示例)都没有一个以上的
${{。我猜你想要${{ format('{0}:{1}', env.PATH env.HOME) }}。 -
感谢您提供有关基于 0 的索引的信息,我错过了。但这无济于事。使用您建议的语法,我得到:“-您的工作流文件无效:管道无效。.github/workflows/main.yml(行:10,列:14):无法识别的命名值:'env'。位于在表达式中的第 19 位:format('{0}:{1}', env.PATH, env.HOME )"
-
那么您是否针对该新错误消息进行了研究?
标签: github-actions