Skip to content

[Bug] build.yml: finalize cleanup-snapshot-tag skipped; workflow naming follow-up #79

@Astro-Han

Description

@Astro-Han

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.ymlrelease.yml,step name 加 [submit] / [finalize] 前缀区分。

高成本方案(不推荐现在做):拆 release-sign.yml + release-publish.yml,需要把共享 step 提成 composite action。

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritybugSomething isn't workingciContinuous integration / GitHub Actions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions