diff --git a/.teamcity/builds/Release.kt b/.teamcity/builds/Release.kt index 4ee3f2fe..5926f0dd 100644 --- a/.teamcity/builds/Release.kt +++ b/.teamcity/builds/Release.kt @@ -1,7 +1,9 @@ package builds import jetbrains.buildServer.configs.kotlin.BuildType +import jetbrains.buildServer.configs.kotlin.ParameterDisplay import jetbrains.buildServer.configs.kotlin.buildFeatures.dockerSupport +import jetbrains.buildServer.configs.kotlin.buildSteps.ScriptBuildStep import jetbrains.buildServer.configs.kotlin.buildSteps.script import jetbrains.buildServer.configs.kotlin.toId @@ -11,7 +13,7 @@ class Release(id: String, name: String) : this.name = name params { - text("version", "", allowEmpty = false) + text("version", "", allowEmpty = false, display = ParameterDisplay.PROMPT, label = "Version to release") text("env.PACKAGES_USERNAME", "%github-packages-user%") password("env.PACKAGES_PASSWORD", "%github-packages-token%") @@ -19,17 +21,33 @@ class Release(id: String, name: String) : } steps { + script { + this.name = "Validate version" + scriptContent = + """ + #!/bin/bash -eu + + if [ -z "%version%" ]; then + echo "Version is not set. Please run as a custom build and specify 'version' parameter." + exit 1 + fi + """.trimIndent() + } + commonMaven { + this.name = "Set version" goals = "versions:set" runnerArgs = "$MAVEN_DEFAULT_ARGS -DnewVersion=%version% -DgenerateBackupPoms=false" } commonMaven { + this.name = "Build versionalised package" goals = "package" runnerArgs = "$MAVEN_DEFAULT_ARGS -DskipTests" } script { + this.name = "Push version" scriptContent = """ #!/bin/bash -eu @@ -43,13 +61,20 @@ class Release(id: String, name: String) : git config --global user.name "${'$'}USER_NAME" git config --global --add safe.directory %teamcity.build.checkoutDir% - git add . + git add **/pom.xml git commit -m "build: release version %version%" git push """.trimIndent() + + formatStderrAsError = true + + dockerImagePlatform = ScriptBuildStep.ImagePlatform.Linux + dockerImage = "eclipse-temurin:11-jdk" + dockerRunParameters = "--volume /var/run/docker.sock:/var/run/docker.sock" } commonMaven { + this.name = "Release to Github" goals = "jreleaser:full-release" runnerArgs = "$MAVEN_DEFAULT_ARGS -Prelease -pl :packaging" }