Skip to content

ci: Release 流程自动 AMO unlisted 签名并上传已签名 Firefox XPI - #7

Merged
abc9207144 merged 1 commit into
masterfrom
ci/firefox-amo-release-signing
Oct 25, 2026
Merged

abc9207144 merged 1 commit into
masterfrom
ci/firefox-amo-release-signing

Conversation

@steponeerror

Copy link
Copy Markdown
Owner

Summary

on(tag push v*)
  prepare-release (draft)
  build-firefox-extension
    npm ci → test → build:firefox → lint:firefox
    web-ext sign --channel unlisted          ← 新增(secrets AMO_API_KEY/AMO_API_SECRET)
    web-ext-artifacts/*.xpi → IP.Radar.Firefox_<tag>.xpi
    gh release upload --clobber              ← 取代原先上传的未签名 ZIP
  • 背景:v0.1.20 后未再执行签名,v0.1.22 Release 只有未签名 IP.Radar.Firefox_v0.1.22.zip,Firefox 安装即报「未签名」。
  • extension/src/release-assets.ts 的 hasExtensionAsset 本就接受 .xpi,扩展代码零改动。
  • 凭据不进 Git:CI 读仓库 secrets(已配置);缺 secrets 时步骤显式报错,而非 web-ext 401 难排查。

Evidence

  • Before: v0.1.22 Release 资产 IP.Radar.Firefox_v0.1.22.zip(未签名)→ Firefox 显示未签名。
    After: 同一 Release 已换上 IP.Radar.Firefox_v0.1.22.xpi(与本 PR CI 同命令序列本机签出:lint 0 errors,sign 成功);workflow YAML 通过解析。
  • CI 中的命令序列(npm ci → build:firefox → lint:firefox → web-ext sign)与本次本机手工签 v0.1.22 完全一致,首个自动化签名将在下一个 v* tag 生效。

Merge Danger

Door: two-way

Blast Radius: release workflow(Firefox 资产面)

  • Firefox 资产从 unsigned ZIP 变为 signed XPI;test.yml、Chrome/桌面构建不受影响。
  • AMO secrets 失效时 build-firefox-extension job 红(fail-loud:发布页缺 Firefox 资产即可发现);在 AMO 重置凭据后需同步更新仓库 secrets。

- build-firefox-extension 增加 web-ext sign(unlisted)步骤,凭据走仓库
  secrets AMO_API_KEY/AMO_API_SECRET,缺失时显式报错
- Release 资产由未签名 ZIP 改为已签名 IP.Radar.Firefox_<tag>.xpi
  (hasExtensionAsset 本就接受 .xpi,零代码改动)
- README/release-notes 同步安装说明(xpi 永久安装,解压可临时载入)
@abc9207144
abc9207144 merged commit e325f2f into master Oct 25, 2026
5 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.

2 participants