From 629bd53d18b647f8fc811e0f51c97fc620c1b517 Mon Sep 17 00:00:00 2001 From: Artem Sorokin <38620398+seemewalkin@users.noreply.github.com> Date: Thu, 27 Nov 2025 13:48:29 +0100 Subject: [PATCH] ci: Add RC release type for v2 release candidates (#22362) --- .github/scripts/bump-versions.mjs | 21 +++++++++++++++++++-- .github/workflows/release-create-pr.yml | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/scripts/bump-versions.mjs b/.github/scripts/bump-versions.mjs index 6c24c4b97f8..214fe806d3b 100644 --- a/.github/scripts/bump-versions.mjs +++ b/.github/scripts/bump-versions.mjs @@ -22,9 +22,24 @@ function generateExperimentalVersion(currentVersion) { return `${parsed.major}.${parsed.minor}.${parsed.patch}-exp.0`; } +function generateRcVersion(currentVersion) { + const parsed = semver.parse(currentVersion); + if (!parsed) throw new Error(`Invalid version: ${currentVersion}`); + + // Check if it's already an RC version + if (parsed.prerelease.length > 0 && parsed.prerelease[0] === 'rc') { + // Increment the RC number + const rcNum = (parsed.prerelease[1] || 0) + 1; + return `${parsed.major}.${parsed.minor}.${parsed.patch}-rc.${rcNum}`; + } + + // Create new RC version: ..-rc.0 + return `${parsed.major}.${parsed.minor}.${parsed.patch}-rc.0`; +} + const rootDir = process.cwd(); const releaseType = process.env.RELEASE_TYPE; -assert.match(releaseType, /^(patch|minor|major|experimental)$/, 'Invalid RELEASE_TYPE'); +assert.match(releaseType, /^(patch|minor|major|experimental|rc)$/, 'Invalid RELEASE_TYPE'); // TODO: if releaseType is `auto` determine release type based on the changelog @@ -63,7 +78,9 @@ for (const packageName in packageMap) { ) ? releaseType === 'experimental' ? generateExperimentalVersion(version) - : semver.inc(version, releaseType) + : releaseType === 'rc' + ? generateRcVersion(version) + : semver.inc(version, releaseType) : version; await writeFile(packageFile, JSON.stringify(packageJson, null, 2) + '\n'); diff --git a/.github/workflows/release-create-pr.yml b/.github/workflows/release-create-pr.yml index a4d246bd252..cce7da5ed78 100644 --- a/.github/workflows/release-create-pr.yml +++ b/.github/workflows/release-create-pr.yml @@ -18,6 +18,7 @@ on: - minor - major - experimental + - rc jobs: create-release-pr: