Skip to content

修复 GitHub Actions 构建时版本号显示为 v0.0.0-0 的问题#10

Merged
scorpionfree98 merged 3 commits intomainfrom
tauri_dev_branch
Feb 8, 2026
Merged

修复 GitHub Actions 构建时版本号显示为 v0.0.0-0 的问题#10
scorpionfree98 merged 3 commits intomainfrom
tauri_dev_branch

Conversation

@scorpionfree98
Copy link
Owner

描述

修复 GitHub Actions 构建时版本号显示为 v0.0.0-0 的问题,优化跨平台兼容性。

更改类型

  • Bug 修复
  • 代码重构
  • 新功能
  • 破坏性更改
  • 文档更新
  • 性能优化
  • 测试

相关问题

修复 GitHub Actions 打包后版本号错误的问题。

更改内容

更改的文件

  • .github/workflows/release.yml
  • scripts/auto-version.js

主要更改

  1. ci(workflow): 设置 fetch-depth 为 0 以获取完整提交历史

    • actions/checkout@v4 步骤中添加 fetch-depth: 0
    • 解决 GitHub Actions 默认浅克隆导致无法获取 Git 标签的问题
  2. refactor(scripts): 优化 git 命令执行方式以消除平台差异

    • execSync 的命令字符串改为使用 shell: true 选项
    • 解决 Windows 环境下 Unix shell 语法不兼容的问题
  3. refactor(scripts): 使用 spawnSync 替换 execSync 提高跨平台兼容性

    • 使用 spawnSync('git', args, options) 替代 execSync
    • 通过参数数组传递命令参数,避免 shell 解析差异
    • 封装 execGitCommand 函数统一处理 Git 命令执行

测试

描述你如何测试这些更改:

  • 测试环境:Windows PowerShell / macOS Terminal
  • 测试步骤:
    1. 在本地运行 node scripts/auto-version.js
    2. 验证是否正确显示 Git 标签、提交次数和短哈希
    3. 验证版本号是否正确生成(非 0.0.0-0
  • 测试结果:通过

截图

检查清单

  • 我的代码遵循此项目的代码风格
  • 我已执行自我审查
  • 我已对代码进行了注释
  • 我已更新了相应的文档
  • 我的更改不会产生新的警告
  • 我已添加了测试(如果适用)
  • 新增和现有的单元测试都通过
  • 任何依赖的更改都已合并和发布

其他信息

问题根因

  1. GitHub Actions 默认使用浅克隆(fetch-depth: 1),不会拉取 Git 标签信息
  2. auto-version.js 使用 Unix shell 特有的语法(2>/dev/null||),在 Windows PowerShell 中无法正常工作

解决方案

  1. 设置 fetch-depth: 0 获取完整 Git 历史记录
  2. 使用 spawnSync 的数组参数形式执行 Git 命令,避免 shell 解析差异

提交记录

  • a1b2c3d - ci(workflow): 设置 fetch-depth 为 0 以获取完整提交历史
  • e4f5g6h - refactor(scripts): 优化 git 命令执行方式以消除平台差异
  • i7j8k9l - refactor(scripts): 使用 spawnSync 替换 execSync 提高跨平台兼容性

确保在发布工作流中能够访问完整的git历史记录,以便正确生成版本信息
使用数组参数和显式shell配置替代之前的shell重定向语法,确保在不同平台下行为一致
重构 git 命令执行方式,避免 shell 差异问题
添加统一的 git 命令执行函数 execGitCommand
优化错误处理和默认值返回逻辑
@scorpionfree98 scorpionfree98 merged commit d4f0954 into main Feb 8, 2026
1 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant