Github Action报错Error: Unable to process file command 'env' successfully.


我需要从本地文件里读取文本,一般在bash执行cat ./fileName就行了,于是我就想当然

echo "FILE_TEXT=$(cat ./file.txt)" >> $GITHUB_ENV

然后就如下报错了

Error: Unable to process file command 'env' successfully.
Error: Invalid environment variable format 'xxxxxxxxxx... '

原因是因为设置$GITHUB_ENV环境变量不支持多行文本的直接设置,得加EOF才行
如下这样设置就可以了

name: "读取文本"
run: |
       echo 'FILE_TEXT<> $GITHUB_ENV
       cat ./file.txt >> $GITHUB_ENV
       echo 'EOF' >> $GITHUB_ENV

run: | 是运行多行shell命令,此步骤内可以获取到局部变量,需要跨步骤取值的必须得写到 $GITHUB_ENV 里去,然后读取方式如下即可:

${{env.FILE_TEXT}}