-
Notifications
You must be signed in to change notification settings - Fork 426
Cloudsmith publishing is never triggered for new major/minor stable releases #14310
Description
The call-cloudsmith-publish job in create-release.yml is never triggered during the new major/minor release process (e.g., releasing v1.9 stable), because of a mismatch between how the workflow is designed and how these releases are actually made.
Note: Patch releases on the stable branch are not affected — the stable release checklist correctly instructs to uncheck “Pre-release” when dispatching the build, so Cloudsmith triggers as expected.
How the workflow expects stable releases to work
The Cloudsmith job condition at line 776 is:
call-cloudsmith-publish:
if: ${{ inputs.publish-release && ! (inputs.pre-release == true) }}This expects someone to dispatch create-release.yml with pre-release: false.
How new major/minor releases actually work
Per the new release checklist, the process is:
- Dispatch
create-release.ymlwith the defaults (pre-release: true) - Later, manually edit the GitHub release to uncheck “Set as pre-release” and check “Set as latest release”
Since the build runs with prerelease: true, the Cloudsmith condition is always false. The manual promotion via the GitHub UI does not re-trigger any workflow.
Evidence
Build Installers #3798 (v1.9.36) — the publish-release job log shows prerelease: true at the Create Release step. The call-cloudsmith-publish job was skipped. v1.9.36 was later promoted to stable manually, but Cloudsmith was never published.
Incorrect checklist entry
Both checklists state:
Cloudsmith: Automatically published by Build Installers workflow. No action needed.
This is incorrect for the new major/minor release process. The reference to cloudsmith-publishing.md for manual republishing suggests this gap has been hit before.
Proposed fix
Add a release event trigger to publish-cloudsmith.yml to catch manual promotions:
on:
workflow_call:
# ... existing
workflow_dispatch:
# ... existing
release:
types: [released, edited]With a job-level guard to only publish for non-prerelease:
jobs:
publish-cloudsmith:
if: >-
github.event_name != 'release'
|| !github.event.release.prerelease
# ...The released event type fires when a pre-release is promoted to stable. The edited type is added as a safety net (some edge cases only fire edited when unchecking the pre-release checkbox). The condition ensures Cloudsmith only runs for non-prerelease releases.
Since the promotion is done manually by a real user in the GitHub UI (not by github-actions[bot]), there is no GITHUB_TOKEN limitation — the event will properly trigger the workflow.
Also update the checklist
Update dev-docs/checklist-make-a-new-quarto-release.md Cloudsmith entry to reflect the fix, or add a manual step until the automation is in place.
1.9.36 fix
I have triggered manually the deploy of last stable release this time.