Staged publishing support

This commit is contained in:
Mateusz Burzyński
2026-07-23 13:21:42 +02:00
parent 5b307d3df2
commit 79d401e0bd
18 changed files with 916 additions and 25 deletions
+22 -1
View File
@@ -1,3 +1,24 @@
# changesets/action/publish
TODO
Publishes packages with Changesets.
Set the optional `stage` input to `true` or `false` to override
`stagedPublishing` from the Changesets config. The input is tri-state: omitting
it leaves the config in control. An explicit `stage` cannot be combined with a
custom `script`; configure the script itself instead.
When packages are staged, the action uploads a 30-day handoff and returns its
exact id as `staged-release-artifact-id`. It also prints a topologically
ordered approval command:
```sh
changeset stage approve <id...>
```
That command is only a convenience and uses the default registry. For custom
or multiple registries, split the IDs into correctly scoped commands and pass
`--registry` to each.
After approval, pass the artifact id to
`changesets/action/github-release` to verify publication and create Git tags
and GitHub Releases.
+8
View File
@@ -11,6 +11,12 @@ inputs:
script:
description: "The command to use to publish packages"
required: false
stage:
description: >
Whether to use staged publishing. Omit to use the Changesets config,
set to true for --stage, or false for --no-stage. Cannot be combined
with a custom script.
required: false
pack-dir-artifact-id:
description: "Artifact id for packed publish output generated by the pack subaction"
required: false
@@ -30,6 +36,8 @@ outputs:
published-packages:
description: >
A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]`
staged-release-artifact-id:
description: "Artifact id for the staged release handoff"
branding:
icon: package
color: blue