GitHub Actions中workflow_dispatch是否支持多行输入?如何正确传递多行输入参数?
解决GitHub Actions工作流中多行输入参数传递的问题
我太懂这种郁闷了——通过workflow_dispatch传递多行changelog时,明明输入了好几行,结果工作流里拿到的却变成了挤在一起的内容对吧?别着急,这几个实用方法能帮你搞定:
方法1:手动转义换行符(适合手动触发时输入)
当你在GitHub的手动触发界面输入多行内容时,把每一行结尾换成%0A(URL编码的换行符),工作流就能正确识别换行。比如原本的changelog是:
修复登录页跳转bug 优化移动端加载速度 新增用户反馈功能
改成:
修复登录页跳转bug%0A优化移动端加载速度%0A新增用户反馈功能
之后在工作流里直接用${{ github.event.inputs.change-log }}就能拿到带正确换行的完整内容。
方法2:用环境变量保留换行(推荐)
在工作流的Job中,把输入参数赋值给环境变量时加上双引号,这样能完整保留换行格式。示例配置如下:
name: Test on: workflow_dispatch: inputs: change-log: description: 'Changelog' required: true jobs: test-job: runs-on: ubuntu-latest steps: - name: 输出完整更新日志 env: CHANGELOG: "${{ github.event.inputs.change-log }}" run: | echo "=== 更新日志 ===" echo "$CHANGELOG"
这里的关键是给环境变量赋值加双引号,并且在run步骤里用echo "$CHANGELOG"(带引号)来输出,这样换行就不会被shell当成空格吃掉。
方法3:YAML多行字符串语法(针对默认值)
如果你的changelog有固定的默认多行内容,可以在配置inputs时用YAML的多行字符串标记|来定义:
name: Test on: workflow_dispatch: inputs: change-log: description: 'Changelog' required: true default: | 修复登录页跳转bug 优化移动端加载速度 新增用户反馈功能
这种写法下,默认值的换行会被完整保留,用户手动输入时也能直接换行,工作流里引用参数时同样要注意用引号包裹避免换行丢失。
内容的提问来源于stack exchange,提问作者lakshmiravali rimmalapudi
相关产品推荐
相关产品推荐

