From c9b25cbb2786bd1193ab0b47b57686671bd88d5d Mon Sep 17 00:00:00 2001 From: Alex Plate <aleksei.plate@jetbrains.com> Date: Tue, 4 Mar 2025 17:38:12 +0200 Subject: [PATCH] Remove experimental TC releases --- .../CreateNewReleaseBranchFromMaster.kt | 72 ------------ .../_Self/buildTypes/PrintReleaseBranch.kt | 42 ------- .../_Self/buildTypes/ReleaseEapFromBranch.kt | 110 ------------------ .teamcity/_Self/subprojects/Releases.kt | 7 -- scripts/build.gradle.kts | 7 -- .../calculateNewEapVersionFromBranch.kt | 49 -------- 6 files changed, 287 deletions(-) delete mode 100644 .teamcity/_Self/buildTypes/CreateNewReleaseBranchFromMaster.kt delete mode 100644 .teamcity/_Self/buildTypes/PrintReleaseBranch.kt delete mode 100644 .teamcity/_Self/buildTypes/ReleaseEapFromBranch.kt delete mode 100644 scripts/src/main/kotlin/scripts/release/calculateNewEapVersionFromBranch.kt diff --git a/.teamcity/_Self/buildTypes/CreateNewReleaseBranchFromMaster.kt b/.teamcity/_Self/buildTypes/CreateNewReleaseBranchFromMaster.kt deleted file mode 100644 index 3c0348053..000000000 --- a/.teamcity/_Self/buildTypes/CreateNewReleaseBranchFromMaster.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2003-2024 The IdeaVim authors - * - * Use of this source code is governed by an MIT-style - * license that can be found in the LICENSE.txt file or at - * https://opensource.org/licenses/MIT. - */ - -package _Self.buildTypes - -import _Self.IdeaVimBuildType -import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode -import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext -import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent -import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script - -object CreateNewReleaseBranchFromMaster : IdeaVimBuildType({ - name = "EXP: Create new release branch from master" - - vcs { - root(DslContext.settingsRoot) - branchFilter = "+:<default>" - - checkoutMode = CheckoutMode.AUTO - } - - steps { - script { - name = "Calculate next potential release version" - scriptContent = """ - #!/bin/bash - - # Fetch all remote branches - git fetch --all - - # Get a list of all branches matching the pattern releases/x.y.z - branches=${'$'}(git branch -r | grep -oE 'releases/[0-9]+\.[0-9]+\.x') - - # If no matching branches are found, print a message and exit - if [[ -z "${'$'}branches" ]]; then - echo "No release branches found" - exit 1 - fi - - # Find the largest release version - largest_release=${'$'}(echo "${'$'}branches" | sort -V | tail -n 1) - - # Print the largest release - echo "Largest release branch: ${'$'}largest_release" - echo "##teamcity[setParameter name='env.POTENTIAL_VERSION' value='${'$'}largest_release']" - """.trimIndent() - } - - script { - name = "Show potential release version" - scriptContent = """ - #!/bin/bash - echo "Calculated or user-provided parameter value is: %env.POTENTIAL_VERSION%" - """.trimIndent() - } - } - - params { - param("env.POTENTIAL_VERSION", "") - } - - features { - sshAgent { - teamcitySshKey = "IdeaVim ssh keys" - } - } -}) \ No newline at end of file diff --git a/.teamcity/_Self/buildTypes/PrintReleaseBranch.kt b/.teamcity/_Self/buildTypes/PrintReleaseBranch.kt deleted file mode 100644 index 97c61e951..000000000 --- a/.teamcity/_Self/buildTypes/PrintReleaseBranch.kt +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2003-2024 The IdeaVim authors - * - * Use of this source code is governed by an MIT-style - * license that can be found in the LICENSE.txt file or at - * https://opensource.org/licenses/MIT. - */ - -package _Self.buildTypes - -import _Self.IdeaVimBuildType -import _Self.vcsRoots.ReleasesVcsRoot -import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode -import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent -import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script - -object PrintReleaseBranch : IdeaVimBuildType({ - name = "EXP: Print release branch" - - vcs { - root(ReleasesVcsRoot) - branchFilter = "+:heads/releases/*" - - checkoutMode = CheckoutMode.AUTO - } - - steps { - - script { - name = "Print current branch" - scriptContent = """ - echo "Current branch is: %teamcity.build.branch%" - """.trimIndent() - } - } - - features { - sshAgent { - teamcitySshKey = "IdeaVim ssh keys" - } - } -}) \ No newline at end of file diff --git a/.teamcity/_Self/buildTypes/ReleaseEapFromBranch.kt b/.teamcity/_Self/buildTypes/ReleaseEapFromBranch.kt deleted file mode 100644 index 9d833624c..000000000 --- a/.teamcity/_Self/buildTypes/ReleaseEapFromBranch.kt +++ /dev/null @@ -1,110 +0,0 @@ -package _Self.buildTypes - -import _Self.Constants.EAP_CHANNEL -import _Self.Constants.RELEASE_EAP -import _Self.IdeaVimBuildType -import _Self.vcsRoots.ReleasesVcsRoot -import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode -import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay -import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent -import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle -import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script -import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric -import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange - -object ReleaseEapFromBranch : IdeaVimBuildType({ - name = "EXP: Publish EAP Build from branch" - description = "Build and publish EAP of IdeaVim plugin" - - artifactRules = "build/distributions/*" - - params { - param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_EAP) - password( - "env.ORG_GRADLE_PROJECT_publishToken", - "credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde", - label = "Password" - ) - param("env.ORG_GRADLE_PROJECT_publishChannels", EAP_CHANNEL) - password( - "env.ORG_GRADLE_PROJECT_slackUrl", - "credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5", - label = "Slack Token" - ) - password( - "env.YOUTRACK_TOKEN", - "credentialsJSON:2479995b-7b60-4fbb-b095-f0bafae7f622", - display = ParameterDisplay.HIDDEN - ) - } - - vcs { - root(ReleasesVcsRoot) - branchFilter = """ - +:heads/releases/* - """.trimIndent() - - checkoutMode = CheckoutMode.AUTO - } - - steps { - script { - name = "Pull git tags" - scriptContent = "git fetch --tags origin" - } - script { - name = "Pull git history" - scriptContent = "git fetch --unshallow" - } - gradle { - name = "Calculate new eap version from branch" - tasks = "scripts:calculateNewEapVersionFromBranch" - jdkHome = "/usr/lib/jvm/java-21-amazon-corretto" - } - gradle { - name = "Set TeamCity build number" - tasks = "scripts:setTeamCityBuildNumber" - jdkHome = "/usr/lib/jvm/java-21-amazon-corretto" - } - gradle { - name = "Add release tag" - tasks = "scripts:addReleaseTag" - jdkHome = "/usr/lib/jvm/java-21-amazon-corretto" - } - gradle { - name = "Publish plugin" - tasks = "publishPlugin" - jdkHome = "/usr/lib/jvm/java-21-amazon-corretto" - } - script { - name = "Push changes to the repo" - scriptContent = """ - branch=$(git branch --show-current) - echo current branch is ${'$'}branch - git push origin %build.number% - """.trimIndent() - } - gradle { - name = "YouTrack post release actions" - tasks = "scripts:eapReleaseActions" - } - } - - features { - sshAgent { - teamcitySshKey = "IdeaVim ssh keys" - } - } - - failureConditions { - failOnMetricChange { - metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE - threshold = 5 - units = BuildFailureOnMetric.MetricUnit.PERCENTS - comparison = BuildFailureOnMetric.MetricComparison.DIFF - compareTo = build { - buildRule = lastSuccessful() - } - } - } -}) diff --git a/.teamcity/_Self/subprojects/Releases.kt b/.teamcity/_Self/subprojects/Releases.kt index 0a01f6dd7..bffe2fd4e 100644 --- a/.teamcity/_Self/subprojects/Releases.kt +++ b/.teamcity/_Self/subprojects/Releases.kt @@ -1,11 +1,8 @@ package _Self.subprojects -import _Self.buildTypes.CreateNewReleaseBranchFromMaster -import _Self.buildTypes.PrintReleaseBranch import _Self.buildTypes.PublishVimEngine import _Self.buildTypes.ReleaseDev import _Self.buildTypes.ReleaseEap -import _Self.buildTypes.ReleaseEapFromBranch import _Self.buildTypes.ReleaseMajor import _Self.buildTypes.ReleaseMinor import _Self.buildTypes.ReleasePatch @@ -41,8 +38,4 @@ object Releases : Project({ buildType(ReleaseEap) buildType(ReleaseDev) buildType(PublishVimEngine) - - buildType(CreateNewReleaseBranchFromMaster) - buildType(PrintReleaseBranch) - buildType(ReleaseEapFromBranch) }) diff --git a/scripts/build.gradle.kts b/scripts/build.gradle.kts index 6f8d7fe9c..edd8b65a6 100644 --- a/scripts/build.gradle.kts +++ b/scripts/build.gradle.kts @@ -107,13 +107,6 @@ tasks.register("calculateNewEapVersion", JavaExec::class) { args = listOf("${rootProject.rootDir}") } -tasks.register("calculateNewEapVersionFromBranch", JavaExec::class) { - group = "release" - mainClass.set("scripts.release.CalculateNewEapVersionFromBranchKt") - classpath = sourceSets["main"].runtimeClasspath - args = listOf("${rootProject.rootDir}") -} - tasks.register("calculateNewDevVersion", JavaExec::class) { group = "release" mainClass.set("scripts.release.CalculateNewDevVersionKt") diff --git a/scripts/src/main/kotlin/scripts/release/calculateNewEapVersionFromBranch.kt b/scripts/src/main/kotlin/scripts/release/calculateNewEapVersionFromBranch.kt deleted file mode 100644 index e65a67f99..000000000 --- a/scripts/src/main/kotlin/scripts/release/calculateNewEapVersionFromBranch.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2003-2023 The IdeaVim authors - * - * Use of this source code is governed by an MIT-style - * license that can be found in the LICENSE.txt file or at - * https://opensource.org/licenses/MIT. - */ - -package scripts.release - -fun main(args: Array<String> ) { - val projectDir = args[0] - println("Working directory: $projectDir") - val branch = withRepo(projectDir) { it.branch } - val (majorBranchVersion, minorBranchVersion) = versions(branch) - val versions = getVersionsExistingVersionsFor(majorBranchVersion, minorBranchVersion, projectDir) - val maxExistingVersion = versions.keys.maxOrNull() - - val nextVersion = if (maxExistingVersion != null) { - if (maxExistingVersion.suffixTokens.isEmpty()) { - maxExistingVersion.nextPatch().withSuffix("eap.1").value - } - else { - check(maxExistingVersion.suffixTokens.size == 2) { - "We should have exactly two suffix tokens. Current tokens: ${maxExistingVersion.suffixTokens.toList()}" - } - check(maxExistingVersion.suffixTokens[0] == "eap") { - "First suffix token must be eap. Current tokens: ${maxExistingVersion.suffixTokens.toList()}" - } - - val newEapNumber = maxExistingVersion.suffixTokens[1].toInt().inc() - maxExistingVersion.withSuffix("eap.$newEapNumber").value - } - } else { - "$majorBranchVersion.$minorBranchVersion.0-eap.1" - } - - - println("Next eap version: $nextVersion") - println("##teamcity[setParameter name='env.ORG_GRADLE_PROJECT_version' value='$nextVersion']") -} - -private val regex = "releases/(\\d+)\\.(\\d+)\\.x".toRegex() -private fun versions(branchName: String): Pair<Int, Int> { - val match = regex.matchEntire(branchName) ?: error("Cannot match branch: $branchName") - val major = match.groups[1] - val minor = match.groups[2] - return major!!.value.toInt() to minor!!.value.toInt() -} \ No newline at end of file