You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Action中获取Node.js脚本输出的版本号

在GitHub Action中提取Node脚本输出的版本号

方法一:让Node脚本输出纯净版本号(推荐)

修改你的Node脚本patch-file.ts,确保它仅输出版本号,把非版本号的日志重定向到stderr避免干扰:

// patch-file.ts
// 其他业务逻辑...
console.error("脚本执行日志等非版本号内容"); // 这类输出会被npm的日志捕获,不会混入版本号
console.log(version); // 仅将版本号输出到stdout

然后在GitHub Action步骤中,通过--silent去掉npm的前缀日志,直接捕获版本号并设置为Action输出变量:

- name: Update File
  id: update_file
  run: |
    VERSION=$(npm run patch-file --silent)
    echo "version=$VERSION" >> $GITHUB_OUTPUT

后续步骤可以直接通过${{ steps.update_file.outputs.version }}引用这个版本号:

- name: Use Generated Version
  run: echo "新版本号是 ${{ steps.update_file.outputs.version }}"

方法二:从现有输出中提取版本号

如果不想修改Node脚本,可通过命令行工具从现有输出里提取版本号。比如用awk直接取输出的最后一个字段:

- name: Update File
  id: update_file
  run: |
    VERSION=$(npm run patch-file | awk '{print $NF}')
    echo "version=$VERSION" >> $GITHUB_OUTPUT

也可以用grep匹配版本号的格式(如x.x.x)来精准提取:

- name: Update File
  id: update_file
  run: |
    VERSION=$(npm run patch-file | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
    echo "version=$VERSION" >> $GITHUB_OUTPUT

后续步骤同样通过${{ steps.update_file.outputs.version }}调用版本号。如果输出有多行,可搭配tail -n 1取最后一行再处理,确保只捕获到版本号所在行。

内容的提问来源于stack exchange,提问作者Vince

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:39:57