我正在尝试使用Github Action使用命令行程序的帮助文本来更新自述文件。我有一个脚本main.js,它产生以下输出:
>> node main.js -h
Generate README from template
Main options
-i, --input-file-name string
-o, --output-file-name string
-k, --keys string[]
-v, --values string[]
-h, --help
现在,我尝试在Github操作中设置环境变量,但是在打印出来时会丢失换行符。这是我的.github / workflows / main.yml:
name: Test Action
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Get Help Text
run: |
echo ::set-env name=HELP_TEXT::$(node main.js -h)
- name: Print HELP_TEXT
run: |
echo "$HELP_TEXT"
- name: Regenerate README.md
uses: ./
with:
key: help
value: ${{ env.HELP_TEXT }}
“打印HELP_TEXT”步骤产生以下输出(注意换行符丢失):
Generate README from template Main options -i, --input-file-name string -o, --output-file-name string -k, --keys string[] -v, --values string[] -h, --help
请注意,test
作业的最后一步正在运行更新我的自述文件内容的代码;它看到的输入与“ Print HELP_TEXT”步骤的输出相同。
是否可以通过某种方式存储环境变量以保留格式?
答案 0 :(得分:1)
尝试将文件内容用作发布主体时遇到类似的问题,已通过trick provided by tobiasfaust on GitHub解决:
- run: |
body=$(cat NEWS.md)
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo "::set-env name=MOD_RELEASE_BODY::$body"
shell: bash
Bash magick将确保正确存储换行符,从而使env变量可用作操作参数。