Extension CI: postulo-chromium builds twice per run, and postulo-firefox keeps its release package only as an expiring artifact #1148
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#1148
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What exists today
Read from the server's
main(fetched 2026-10-30; the local checkouts are behind).ci.yml: line 35npm run build, then line 39npm run package, whose script inpackage.json(line 13) begins withnpm run buildagain. Both targets are built twice per run. The runs take 30 s to 3 min in total, so the second build is seconds.release.yml(lines 44-48) uploads the tag's zip withactions/upload-artifact@v3; artifacts expire under the instance's retention, and nothing attaches the zip to a Forgejo release. The workflow's own header says the point is that "what is submitted is what the tag says"; after expiry that file is gone and only a rebuild remains.~/.npm.npm ciinstalls web-ext (and jsdom in chromium); measured run lengths (20 s to 1 min for firefox) leave little to win.Corrections to the candidate: web-ext is
^10.8.0in all threepackage.jsonfiles now (the^8was in the stale local checkout; SEC2-051/052 moved it). Firefox's CI building and linting again is not a duplicate of chromium's: it builds from the chromium commit pinned insource.jsonand checks the pin (npm run check:pin), which chromium's run cannot do. Not filed elsewhere: searches in postulo-chromium and postulo-firefox for release, artifact, cache and CI find only closed security issues and postulo-firefox#1 (reproducible builds, closed).What would change
npm run package, or makepackagenot rebuild whendist/is current. Trivial.release.yml, after packaging, create a release for the tag and attach the zip (the Forgejo APIPOST /repos/{owner}/{repo}/releasesand/releases/{id}/assetswithcurl, since setup actions from GitHub may not resolve here), withpermissions: contents: writeon that workflow only. postulo-thunderbird would follow when it gets a release workflow.What it saves or protects
small: a few seconds per chromium run; for Firefox, the package submitted to addons.mozilla.org kept for good instead of until the artifact expires
Accessibility
none
Decided by the maintainer (2026-10-31)
Firefox package published as a Forgejo release asset
Decisions
Found by the efficiency and reliability audit of 2026-10-30 (finding PC8; index postulo/postulo#1108). Checked against
mainatdaee30b15(2026-10-30).