Skip to content

build: publish prereleases from the beta and alpha branches - #544

Merged
AkibaAT merged 3 commits into
mainfrom
feature/538-prerelease-channels
Nov 9, 2026
Merged

AkibaAT merged 3 commits into
mainfrom
feature/538-prerelease-channels

Conversation

@AkibaAT

@AkibaAT AkibaAT commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

The Problem/Issue/Bug:

There is no way to get alpha or beta builds to the Marketplace. The prerelease tag handling in release.yml and publish-release.yml never ran: releases created by release.yml use the workflow token, which can't start publish-release.yml.

How this PR Solves the Problem:

  • publish-prerelease.yml: every push to beta or alpha publishes both platform variants to the Marketplace channel of the same name, creates a Sentry release and a GitHub prerelease with the zips and generated notes. Runs are queued per branch so version numbers can't collide.
  • publish-marketplace.yml: reusable publish and Sentry jobs, used by both the stable and prerelease paths.
  • publish-release.yml: stable only. It fails unless the tag is plain X.Y.Z, so promoting a prerelease can't publish it to stable.
  • release.yml: no longer matches prerelease tags.
  • Build, tests and verify also run on pushes to beta and alpha.
  • CONTRIBUTING.md describes the release flow and the channel repository URLs.

Versioning

  • The target version is the newest ## [X.Y.Z] section in CHANGELOG.md when it is above the latest stable release, otherwise the next patch. Adding ## [1.3.0] on alpha makes its builds 1.3.0-alphaN.
  • The number continues after the highest existing version for that target, read from the Marketplace channel and from GitHub tags. With the manual uploads already there, the next alpha is 1.3.0-alpha5.
  • Versions use the existing format without a dot (alpha5, beta1).
  • Prereleases show the change notes of their target version's CHANGELOG.md section.

Manual Testing Instructions:

actionlint passes. The version step was dry-run against this repository and the live Marketplace channels: with CHANGELOG.md topping at 1.2.10 it gives 1.2.11-beta1 and 1.2.11-alpha1; with a ## [1.3.0] section it gives 1.3.0-alpha5 and 1.3.0-beta1. patchPluginXml for 1.2.11-beta3 picks up the ## [1.2.11] change notes.

After merging:

  1. Create beta and alpha from main (the first push publishes immediately) and protect both branches. Add the ## [1.3.0] section on alpha before its first push so it continues after 1.3.0-alpha4.
  2. Check that the run publishes 1.2.11-beta1+251 and 1.2.11-beta1+261 to the beta channel and creates the GitHub prerelease.
  3. Add https://plugins.jetbrains.com/plugins/beta/list as a plugin repository in the IDE and confirm the update shows up.

Related Issue Link(s):

Closes #538

Every push to beta or alpha publishes to the Marketplace channel of the
same name and creates a GitHub prerelease. Versions are the next patch
after the latest stable release, numbered per channel.

Publishing moves into a reusable workflow shared with stable releases,
which now require a plain X.Y.Z tag.

Closes #538
The target version is the newest CHANGELOG.md section above the latest
stable release, otherwise the next patch. Numbering continues after the
highest version on the Marketplace channel or in GitHub tags, using the
existing format without a dot (1.3.0-alpha5).
@sonarqubecloud

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

@AkibaAT
AkibaAT merged commit 60ec73f into main Nov 9, 2026
13 checks passed
@AkibaAT
AkibaAT deleted the feature/538-prerelease-channels branch November 9, 2026 01:15
@github-project-automation github-project-automation Bot moved this from New to Done in Development Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set up GitHub workflows for beta and alpha releases

1 participant