From 30cf1bde42f1fd1352070a28a9fbdb81ede6efb6 Mon Sep 17 00:00:00 2001 From: Rodrigo Antunes Date: Mon, 7 Oct 2024 17:16:31 -0300 Subject: [PATCH] NO-ISSUE: Jenkins jobs updates and fixes for Apache 10 release (#3668) * Adjust release pipelines for the Apache 10 release (#3589) * Sync main -> 10.0.x --------- Co-authored-by: Rodrigo Antunes --- .ci/jenkins/Jenkinsfile.deploy | 48 +++++++++++++++++++++++----------- .ci/jenkins/dsl/jobs.groovy | 1 + 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/.ci/jenkins/Jenkinsfile.deploy b/.ci/jenkins/Jenkinsfile.deploy index 7a3a6be7c7e..71a56a24b4b 100644 --- a/.ci/jenkins/Jenkinsfile.deploy +++ b/.ci/jenkins/Jenkinsfile.deploy @@ -90,7 +90,7 @@ pipeline { } stage('Prepare for PR') { when { - expression { return isRelease() || isCreatePr() } + expression { return isCreatePr() } } steps { script { @@ -120,7 +120,7 @@ pipeline { 'version.org.kie', getDroolsVersion() ) - // Need artifacts available locally + // Need artifacts available locally getMavenCommand() .withProperty('quickly') .withSettingsXmlFile(MAVEN_SETTINGS_FILE) @@ -152,22 +152,16 @@ pipeline { if (params.SKIP_TESTS) { mvnCmd.skipTests() // Conflict somehow with Python testing. If `skipTests={anyvalue}` is set, then exec plugin is not executed ... } - def Closure mavenRunClosure = { - configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]) { - mavenCommand.withSettingsXmlFile(MAVEN_SETTINGS_FILE) - .run("clean $installOrDeploy") - } - } if (isRelease()) { - release.gpgImportKeyFromStringWithoutPassword(getReleaseGpgSignKeyCredsId()) - mavenCommand + releaseUtils.gpgImportKeyFromStringWithoutPassword(getReleaseGpgSignKeyCredsId()) + mvnCmd .withProfiles(['apache-release']) .withProperty('only.reproducible') - mavenRunClosure() - } else { - mavenRunClosure() } - + configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]) { + mvnCmd.withSettingsXmlFile(MAVEN_SETTINGS_FILE) + .run("clean $installOrDeploy") + } } } } @@ -182,7 +176,7 @@ pipeline { } stage('Create PR') { when { - expression { return isRelease() || isCreatePr() } + expression { return isCreatePr() } } steps { script { @@ -206,6 +200,26 @@ pipeline { } } } + stage('Commit and Create Tag') { + when { + expression { return isRelease() } + } + steps { + script { + dir(getRepoName()) { + if (githubscm.isThereAnyChanges()) { + def commitMsg = "[${getBuildBranch()}] Update version to ${getProjectVersion()}" + githubscm.setUserConfigFromCreds(getGitAuthorPushCredsId()) + githubscm.commitChanges(commitMsg, { githubscm.findAndStageNotIgnoredFiles('pom.xml') }) + } else { + println '[WARN] no changes to commit' + } + githubscm.tagRepository(getGitTagName()) + githubscm.pushRemoteTag('origin', getGitTagName(), getGitAuthorPushCredsId()) + } + } + } + } } post { always { @@ -326,3 +340,7 @@ String getReleaseGpgSignKeyCredsId() { String getReleaseGpgSignPassphraseCredsId() { return env.RELEASE_GPG_SIGN_PASSPHRASE_CREDS_ID } + +String getGitTagName() { + return params.GIT_TAG_NAME +} diff --git a/.ci/jenkins/dsl/jobs.groovy b/.ci/jenkins/dsl/jobs.groovy index d0ac6d88049..6c31c8377b8 100644 --- a/.ci/jenkins/dsl/jobs.groovy +++ b/.ci/jenkins/dsl/jobs.groovy @@ -214,6 +214,7 @@ void setupReleaseDeployJob() { stringParam('PROJECT_VERSION', '', 'Set the project version') stringParam('DROOLS_VERSION', '', 'Drools version to set') stringParam('KOGITO_PR_BRANCH', '', 'PR branch name') + stringParam('GIT_TAG_NAME', '', 'Git tag to create. i.e.: 10.0.0-rc1') booleanParam('SEND_NOTIFICATION', false, 'In case you want the pipeline to send a notification on CI channel for this run.') }