Skip to content

ci: make Firefox signing safe to retry - #5

Merged
kermitsxb merged 2 commits into
feat/firefox-extensionfrom
ci/firefox-sign-retry
Oct 1, 2026
Merged

kermitsxb merged 2 commits into
feat/firefox-extensionfrom
ci/firefox-sign-retry

Conversation

@kermitsxb

Copy link
Copy Markdown
Owner

Follow-up to #4 (merged into feat/firefox-extension); lands in #3.

Summary

  • scripts/sign-firefox.mjs replaces the direct web-ext sign call in npm run sign:firefox. It first asks AMO for the current version:

    • already signed: it downloads the existing signed XPI;
    • pending review: it waits for approval, without submitting again;
    • absent (404): it submits through web-ext sign (unlisted).

    The artifact is always web-ext-artifacts/github-orca-firefox-X.Y.Z.xpi. AMO versions are immutable, so a re-run job (after an approval timeout or a failed download or upload) recovers the XPI instead of failing on "version already exists". The script stops without submitting on any other HTTP error, on a network failure, or on unexpected metadata.

  • release.yml:

    • release-please now needs: build, so no release is cut from a broken main;
    • assets uploads the deterministic XPI path directly.
  • README / AGENTS.md document the retry behaviour.

Verification

  • npm test passes: 251 tests, including the new sign-firefox tests (already signed, absent, pending, retry after a failed download, HTTP and network errors, bad metadata, approval timeout).
  • npm run typecheck is clean.
  • actionlint passes.
  • web-ext lint reports 0 errors and 2 known warnings.

Notes

  • The script imports web-ext/util/submit-addon, which is an internal web-ext module. A web-ext upgrade could break it, so re-run npm test after bumping web-ext.
  • Not run against the real AMO API yet. The first release will exercise it.

@kermitsxb
kermitsxb marked this pull request as ready for review October 1, 2026 12:56
@kermitsxb
kermitsxb merged commit 2f36b1a into feat/firefox-extension Oct 1, 2026
3 checks passed
kermitsxb added a commit that referenced this pull request Oct 1, 2026
* fix(extension): map Firefox native port errors

* feat(build): derive the Firefox manifest

* feat(build): build and sign the Firefox extension

* feat(install): register the native host for Firefox

* docs: Firefox install and signing

* fix(extension): map the Firefox refused-host error

* chore: build before Firefox lint and sign; doc fixes

* ci: build and release both extensions with release-please (#4)

* ci: build both extensions and release them on version tags

* docs: releases

* ci: cut releases with release-please

* docs: release-please releases

* ci: make Firefox signing safe to retry (#5)

* ci: reuse already-submitted AMO versions when signing

* docs: Firefox signing retries
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