我为我的工作区设置了一个环境变量,如下所示:
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
是正确的语法-不需要大括号。