Repository navigation
Release action: opt in to publishing on register (DUPLOAI-3746) - #31
Conversation
|
Two blocking concerns before this merges. Both are about when a version gets published, not how. The mechanics in 1. With
|
…at gates the publish flag
|
Both fair. A push will only publish a version that run newly registered, so an unpublish sticks, and the manual input can still republish on purpose. I'll add your test. For the second, I'll correct the docs, since the console has no key that can register without publishing. |
duplodavid
left a comment
There was a problem hiding this comment.
One important item and a few small ones. A version a platform owner unpublished can go back out on the first push after the host's SDK changes. All easy to resolve.
|
In |
… retry when a publish fails
Changed in 88760d8. |
duplodavid
left a comment
There was a problem hiding this comment.
LGTM. All five earlier items landed. Thanks @amaechiabuah!
Ticket: DUPLOAI-3746. Follows #27.
Registered versions stay unpublished by default. This adds two ways to opt in to publishing on register:
"publish": trueon the extension's entry in.github/extension-publishers.json. A push tomainpublishes only a build that run newly registers, so a push resuming an existing tag never publishes and a deliberate unpublish sticks. The job reads the extension repository's own copy of the allowlist, so the flag is gated by that repository's branch protection, as the docs now say.publishinput on the manually dispatched Extension Release workflow. A manual run also publishes a version an earlier run already registered.Either way,
publish_buildsendsPATCH …/versions/{uuid}/withis_published: trueonly after the build is uploaded and its artifact is registered and matches the release, and leaves an already published version alone. The console key's existing Manage extension versions capability covers publishing.It also carries one docs commit that missed #27, naming
_publish.sh,_publishers.shand the signer'sextension-sign.requirements.txtamong the files the two-approval rule covers.Test plan: every
tests/test-*.shpasses and actionlint is clean. New tests cover publishing a fresh build after its artifact registers, a re-run on an already published version (no PATCH), a manual run publishing an already registered version, a push not republishing a version after it is unpublished, a push resume not publishing, a failed publish failing the job, both opt-ins inrelease-extensions.sh, the default staying unpublished, and the allowlist'spublishfield being a boolean.