Skip to content

Cloudsmith publishing is never triggered for new major/minor stable releases #14310

@cderv

Description

@cderv

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:

  1. Dispatch create-release.yml with the defaults (pre-release: true)
  2. 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions