如何在GitHub Action中设置/修改全局变量及解决修改不生效问题
解决GitHub Action环境变量修改不生效的问题
你的问题出在Windows环境下修改GITHUB_ENV的语法错误,默认的PowerShell执行方式会导致环境变量文件编码异常,GitHub Actions无法正确解析更新后的变量。以下是两种可行的修复方案:
方案一:使用PowerShell正确写入环境变量
修改Say Hi2步骤的脚本,用PowerShell的Add-Content命令指定UTF-8编码写入:
- name: Say Hi2 if: contains(steps.get-version.outputs.version-suffix, 'beta') run: | Add-Content -Path $env:GITHUB_ENV -Value "PREX=true" -Encoding utf8
方案二:切换到cmd shell执行步骤
强制该步骤使用cmd shell,用cmd的语法追加环境变量:
- name: Say Hi2 if: contains(steps.get-version.outputs.version-suffix, 'beta') shell: cmd run: | echo "PREX=true" >> %GITHUB_ENV%
原因说明
Windows环境下GitHub Actions默认使用PowerShell作为run步骤的执行shell,直接用echo "xxx" >> $GITHUB_ENV会以UTF-16编码写入文件,而GitHub Actions要求GITHUB_ENV必须是UTF-8编码的纯文本文件,因此无法识别你修改的变量值。上述两种方案分别从编码处理和执行环境两个角度解决了这个问题。
内容的提问来源于stack exchange,提问作者Power Code
相关产品推荐
相关产品推荐

