无法更改作业步骤中的自定义工作流环境变量



我为我的工作区设置了一个环境变量,如下所示:

env:
DATA_BRANCH: master

然后我想在一个工作步骤中更改它(对于macos(

echo {DATA_BRANCH=osx} >> $GITHUB_ENV

但这不会改变变量。

我完整的yml文件是:

https://github.com/GrokImageCompression/grok/blob/master/.github/workflows/build.yml

根据官方文件:

自定义环境变量的范围仅限于定义它的元素。

这意味着如果在工作流级别、作业级别或步骤级别设置env变量最具体的一个总是占上风

在您的情况下,您在工作流级别设置:

env:
DATA_BRANCH: master

如果您希望特定的步骤(或作业(使用另一个值,则只需要将env变量设置为具有该级别的其他值。

在你的情况下,它看起来是这样的:

steps:
...
- name: macos-dependencies
if: startsWith(matrix.os, 'macos')
run: |
...
env:
DATA_BRANCH: osx

同样值得记住的是,使用echo name=value >> $GITHUB_ENV不会将env变量添加到当前步骤中,而只会添加到以下步骤中(参考(:

创建或更新环境变量的步骤无权访问新值,但作业中的所有后续步骤都可以访问。

问题是的语法错误

echo DATA_BRANCH=osx >> $GITHUB_ENV是正确的语法-不需要大括号。

最新更新