Context
v0.2.3 发版后发现两项 build workflow follow-up,跟踪在一个 issue 方便合并改动。
1. cleanup-snapshot-tag job skipped in finalize runs (Bug)
.github/workflows/build.yml:
cleanup-snapshot-tag:
needs:
- build-electron
if: ${{ inputs.phase == 'finalize' && needs.build-electron.result == 'success' }}
v0.2.3 finalize run (24700270092) 里该 job 显示 skipped,尽管 inputs.phase == 'finalize' 且 build-electron (macos-latest, --mac --arm64, arm64) conclusion 是 success。结果是 workflow-snapshot-24700106063-1-arm64 tag 残留在 remote,必须手工 git push origin :refs/tags/... 清掉。每发一次版就多留一个。
嫌疑:needs.build-electron.result 对 matrix 展开的 job 判断不是直觉的 "any succeeded" — matrix 展开后实际 job id 是 build-electron (macos-latest, --mac --arm64, arm64),导致 needs.build-electron.result 在 finalize 上下文里变成 skipped。
修复候选:
always() && needs.build-electron.result == 'success'
- 或
!failure() && !cancelled()
- 或把 matrix 展开一维后重命名 job id
2. workflow naming is ambiguous (minor)
build.yml 实际是 submit + finalize 两阶段流程(中间异步等 Apple 公证),但 workflow 名、job 名都只说 "build",Actions 页读起来像单次构建。
推荐低成本方案:workflow rename build.yml → release.yml,step name 加 [submit] / [finalize] 前缀区分。
高成本方案(不推荐现在做):拆 release-sign.yml + release-publish.yml,需要把共享 step 提成 composite action。
Context
v0.2.3 发版后发现两项 build workflow follow-up,跟踪在一个 issue 方便合并改动。
1.
cleanup-snapshot-tagjob skipped in finalize runs (Bug).github/workflows/build.yml:v0.2.3 finalize run (24700270092) 里该 job 显示
skipped,尽管inputs.phase == 'finalize'且build-electron (macos-latest, --mac --arm64, arm64)conclusion 是 success。结果是workflow-snapshot-24700106063-1-arm64tag 残留在 remote,必须手工git push origin :refs/tags/...清掉。每发一次版就多留一个。嫌疑:
needs.build-electron.result对 matrix 展开的 job 判断不是直觉的 "any succeeded" — matrix 展开后实际 job id 是build-electron (macos-latest, --mac --arm64, arm64),导致needs.build-electron.result在 finalize 上下文里变成 skipped。修复候选:
always() && needs.build-electron.result == 'success'!failure() && !cancelled()2. workflow naming is ambiguous (minor)
build.yml实际是 submit + finalize 两阶段流程(中间异步等 Apple 公证),但 workflow 名、job 名都只说 "build",Actions 页读起来像单次构建。推荐低成本方案:workflow rename
build.yml→release.yml,step name 加[submit]/[finalize]前缀区分。高成本方案(不推荐现在做):拆
release-sign.yml+release-publish.yml,需要把共享 step 提成 composite action。