无法在作业步骤中更改自定义工作流环境变量
Unable to change a custom workflow environment variable in a job step
我像这样为我的工作区设置了一个环境变量:
env:
DATA_BRANCH: master
然后我想在其中一个工作步骤中更改它(对于 macos)
echo {DATA_BRANCH=osx} >> $GITHUB_ENV
但这不会改变变量。
我完整的yml文件是:
https://github.com/GrokImageCompression/grok/blob/master/.github/workflows/build.yml
The scope of a custom environment variable is limited to the element in which it is defined.
这意味着如果您在工作流级别、作业级别或步骤级别设置环境变量。 以最具体的为准。
在您的情况下,您在工作流级别设置:
env:
DATA_BRANCH: master
如果您希望特定步骤(或作业)使用另一个值,您只需在该级别设置环境变量为另一个值。
在你的情况下,它看起来像这样:
steps:
...
- name: macos-dependencies
if: startsWith(matrix.os, 'macos')
run: |
...
env:
DATA_BRANCH: osx
同样值得记住的是,使用 echo name=value >> $GITHUB_ENV
不会将 env 变量添加到当前步骤,而只会添加到以下步骤 (reference):
The step that creates or updates the environment variable does not have access to the new value, but all subsequent steps in a job will have access.
问题是语法错误
echo DATA_BRANCH=osx >> $GITHUB_ENV
是正确的语法 - 不需要大括号。
我像这样为我的工作区设置了一个环境变量:
env:
DATA_BRANCH: master
然后我想在其中一个工作步骤中更改它(对于 macos)
echo {DATA_BRANCH=osx} >> $GITHUB_ENV
但这不会改变变量。
我完整的yml文件是:
https://github.com/GrokImageCompression/grok/blob/master/.github/workflows/build.yml
The scope of a custom environment variable is limited to the element in which it is defined.
这意味着如果您在工作流级别、作业级别或步骤级别设置环境变量。 以最具体的为准。
在您的情况下,您在工作流级别设置:
env:
DATA_BRANCH: master
如果您希望特定步骤(或作业)使用另一个值,您只需在该级别设置环境变量为另一个值。
在你的情况下,它看起来像这样:
steps:
...
- name: macos-dependencies
if: startsWith(matrix.os, 'macos')
run: |
...
env:
DATA_BRANCH: osx
同样值得记住的是,使用 echo name=value >> $GITHUB_ENV
不会将 env 变量添加到当前步骤,而只会添加到以下步骤 (reference):
The step that creates or updates the environment variable does not have access to the new value, but all subsequent steps in a job will have access.
问题是语法错误
echo DATA_BRANCH=osx >> $GITHUB_ENV
是正确的语法 - 不需要大括号。