Skip to content

Conversation

@jsrcode
Copy link
Collaborator

@jsrcode jsrcode commented Dec 22, 2025

问题描述

PR #70 测试时发现虽然修复了 PR 号提取逻辑,但评论仍未发布。

深入分析日志发现:4 个平台的 state artifact 解压到同一个 states/state.json 文件,互相覆盖,最终只剩下最后一个平台(windows-latest)的数据。

从日志可以看到:

Archive:  pr-check-state-macos-arm64.zip
  inflating: states/state.json       
Archive:  pr-check-state-macos-x64.zip
  inflating: states/state.json       # 覆盖了上一个
Archive:  pr-check-state-ubuntu-22.04.zip
  inflating: states/state.json       # 又覆盖了
Archive:  pr-check-state-windows-latest.zip
  inflating: states/state.json       # 最终覆盖

最终结果:

-rw-rw-rw- 1 runner runner  272 Dec 22 15:58 state.json  # 只有一个文件!

解决方案

在解压后,立即将 states/state.json 重命名为 states/{platform}.json

for zip in pr-check-state-*.zip; do
  if [ -f "$zip" ]; then
    # Extract platform name (e.g., pr-check-state-ubuntu-22.04.zip -> ubuntu-22.04)
    platform="${zip#pr-check-state-}"
    platform="${platform%.zip}"
    # Unzip and rename
    unzip -o "$zip" -d states/
    mv states/state.json "states/${platform}.json"
  fi
done

预期结果:

states/ubuntu-22.04.json
states/windows-latest.json
states/macos-arm64.json
states/macos-x64.json

测试计划

  • 合并后在新 PR 上验证 4 个平台的 state 文件都正确保留
  • 确认能从任一文件中提取 PR 号
  • 验证评论成功发布

相关 PR

@jsrcode jsrcode merged commit 52e3ad6 into DuckCoding-dev:main Dec 23, 2025
4 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