Bump version to 2.0.0-beta.4 and scope external-release pipeline to main only#1793
Merged
Conversation
Triggers the external-release ADO pipeline on merge to main, which will publish Microsoft.Garnet 2.0.0-beta.4 and garnet-server 2.0.0-beta.4 to NuGet.org and create GitHub Release v2.0.0-beta.4. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Removes the dev branch path from the v2 release pipeline: - trigger.branches.include: drop 'dev', keep only 'main' - GitHubRelease/NuGet push conditions: simplified from or(main,dev) to a single eq on Build.SourceBranch == refs/heads/main - Drop the releaseTitle powershell shim and 'isPreRelease' flag (only mattered when dev was producing PREVIEW releases) dev pushes will no longer trigger the external release pipeline. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates Garnet’s release version for the next v2 beta and also alters the external release Azure Pipeline behavior. While the stated intent is a simple Version.props bump, the pipeline changes materially affect how/when GitHub Releases and NuGet publishing run.
Changes:
- Bump
VersionPrefixfrom2.0.0-beta.3to2.0.0-beta.4. - Update the external release pipeline to run release/publish steps only on
main(and removedevprerelease handling).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| Version.props | Bumps the package/build version to 2.0.0-beta.4. |
| .azure/pipelines/azure-pipelines-external-release.yml | Changes trigger/conditions and removes dev prerelease behavior for GitHub Release/NuGet publish steps. |
Comments suppressed due to low confidence (2)
.azure/pipelines/azure-pipelines-external-release.yml:14
- PR description states there are no pipeline changes, but this hunk removes
devfrom the trigger branch filter. Please either (1) update the PR description to reflect the new release behavior (main-only) and its implications, or (2) revert this pipeline change so the PR remains a pure version bump.
branches:
include:
- main
paths:
include:
- Version.props
.azure/pipelines/azure-pipelines-external-release.yml:219
- Removing
isPreReleasemeans the GitHub release will default to a non-prerelease even if this pipeline is ever run from a non-main branch again (e.g., via manual runs or future trigger changes). If preview releases are part of the expected flow, keepisPreRelease(and the branch-based title) to avoid accidentally creating a public non-prerelease release from a preview branch.
tagSource: userSpecifiedTag
tag: 'v$(Build.BuildNumber)'
title: 'Garnet v$(Build.BuildNumber)'
releaseNotesSource: inline
Adds a powershell step right after extract_version.ps1 that sets a pipeline variable 'isPreRelease' = true when Build.BuildNumber contains a '-' (i.e., a SemVer prerelease label like '-beta.4'). GitHubRelease@1 now consumes 'isPreRelease: $(isPreRelease)' so: - 2.0.0-beta.x -> prerelease=true (does NOT become 'Latest') - 2.0.0 (GA) -> prerelease=false (becomes 'Latest') - 1.1.x patches -> prerelease=false No future maintenance needed when v2 GA ships. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Extends the powershell shim that already sets 'isPreRelease' to also
set 'releaseTitle' = 'Garnet PREVIEW v$(Build.BuildNumber)' when the
version is a SemVer prerelease (contains '-'), else 'Garnet v...'.
GitHubRelease@1 now consumes 'title: $(releaseTitle)'. Net effect:
- 2.0.0-beta.x -> 'Garnet PREVIEW v2.0.0-beta.x' + prerelease=true
- 2.0.0 (GA) -> 'Garnet v2.0.0' + prerelease=false
- 1.1.x patches -> 'Garnet v1.1.x' + prerelease=false
Restores naming consistency with prior PREVIEW beta releases
(v2.0.0-beta.{1,2,3}) without re-introducing branch-based logic.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
vazois
approved these changes
May 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two changes to the v2 release line on
main:Version.props2.0.0-beta.3 → 2.0.0-beta.4..azure/pipelines/azure-pipelines-external-release.ymlno longer triggers fromdevand no longer carries any preview-release plumbing tied todev. The GitHub releasePre-releaseflag is now auto-derived from the version string so v2 betas stay marked as prereleases without manual maintenance.YAML changes
trigger.branches.include: dropdev, keep onlymainGitHubRelease@1condition:or(SourceBranchName=="main", SourceBranchName=="dev")→eq(Build.SourceBranch, "refs/heads/main")NuGetCommand@2condition: same simplificationreleaseTitlepowershell shim (was only used to prefixPREVIEWfor dev runs); title is now literalGarnet v$(Build.BuildNumber)isPreRelease: ${{ eq(SourceBranchName, "dev") }}(was always false on main runs)extract_version.ps1that sets pipeline variableisPreRelease = trueiffBuild.BuildNumbercontains-(a SemVer prerelease label), and wireGitHubRelease@1to consume it viaisPreRelease: $(isPreRelease)Build.SourceBranchis used (fullrefs/heads/main) instead ofSourceBranchNamefor consistency with the v1 pipeline (#1792).Resulting prerelease behavior (no future maintenance)
LatestbadgeRelease behavior on merge
Merging this PR pushes a
Version.propschange ontomain, which:maincopy of YAML, paths-filter onVersion.props, branches-filter onmain).2.0.0-beta.4.Garnet v2.0.0-beta.4(tagv2.0.0-beta.4, prerelease=true via auto-detect).Microsoft.Garnet.2.0.0-beta.4.nupkgandgarnet-server.2.0.0-beta.4.nupkgto NuGet.org.docker-linux.yml+docker-windows.yml→ 5 Linux + 1 Windows images published to GHCR with tag2.0.0-beta.4. Perdocker/metadata-actiondefaults, prereleases do not get short2/2.0tags, and:latestis gated on default-branch tags so it is not moved by a beta release. Therelease/v1line1/1.1tags are unaffected.Audit checks
Microsoft.Garnetandgarnet-servercurrently published up to2.0.0-beta.3;2.0.0-beta.4does not exist on either feed → push will not be rejected.v2.0.0-beta.4tag exists yet → GitHub release creation will not collide.Version.propschanges ondev) will no longer trigger this pipeline.