This is an automated email from the ASF dual-hosted git repository.

rantunes pushed a commit to branch kie-issues_821
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-apps.git


The following commit(s) were added to refs/heads/kie-issues_821 by this push:
     new 68f40aa83 Weekly job fixes
68f40aa83 is described below

commit 68f40aa836541ad57868bdcc5d16a87a8bcfd552
Author: Rodrigo Antunes <[email protected]>
AuthorDate: Thu Jan 18 14:16:29 2024 -0300

    Weekly job fixes
---
 .ci/jenkins/Jenkinsfile.weekly-deploy | 129 ++++++++++++++++------------------
 .ci/jenkins/dsl/jobs.groovy           |   5 +-
 2 files changed, 62 insertions(+), 72 deletions(-)

diff --git a/.ci/jenkins/Jenkinsfile.weekly-deploy 
b/.ci/jenkins/Jenkinsfile.weekly-deploy
index 0a1a6870c..d2e7b022d 100644
--- a/.ci/jenkins/Jenkinsfile.weekly-deploy
+++ b/.ci/jenkins/Jenkinsfile.weekly-deploy
@@ -42,7 +42,7 @@ pipeline {
                     }
 
                     dir(getRepoName()) {
-                        checkoutRepo(getCheckoutDate())
+                        checkoutRepo()
                     }
                 }
             }
@@ -57,53 +57,21 @@ pipeline {
             }
         }
         stage('Update project version') {
-            when {
-                expression { return getProjectVersion() }
-            }
-            steps {
-                script {
-                    dir(getRepoName()) {
-                        withCredentials([usernamePassword(credentialsId: 
mavenDeployRepositoryCredsId, usernameVariable: 'REPOSITORY_USER', 
passwordVariable: 'REPOSITORY_TOKEN')]) {
-                            configFileProvider([configFile(fileId: 
env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
-                                maven.mvnVersionsUpdateParentAndChildModules(
-                                    
getMavenCommand().withSettingsXmlFile(MAVEN_SETTINGS_FILE).withProperty('apache.snapshot.repository.username',
 REPOSITORY_USER).withProperty('apache.snapshot.repository.password', 
REPOSITORY_TOKEN),
-                                    getProjectVersion(),
-                                    true
-                                )
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        stage('debug') {
             steps {
                 script {
-                    dir(getRepoName()) {
-                        sh 'git status'
-                        sh 'cat pom.xml'
-                        sh 'sleep 6000'
-                    }
+                    maven.mvnVersionsUpdateParentAndChildModules(
+                        getMavenCommand(),
+                        getProjectVersion(),
+                        true
+                    )
                 }
             }
         }
 
-        stage('Deploy kogito-apps locally') {
+        stage('Build & Test & Deploy locally') {
             steps {
                 script {
-                    dir(getRepoName()){
-                        mvnCmd = getMavenCommand()
-                        
mvnCmd.withLocalDeployFolder(getLocalDeploymentFolder())
-                        configFileProvider([configFile(fileId: 
env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
-                            mvnCmd.withProperty('maven.test.failure.ignore', 
true)
-                                .withOptions(env.BUILD_MVN_OPTS_CURRENT ? [ 
env.BUILD_MVN_OPTS_CURRENT ] : [])
-                                .withOptions(env.KOGITO_APPS_BUILD_MVN_OPTS ? 
[ env.KOGITO_APPS_BUILD_MVN_OPTS ] : [])
-                                .skipTests(skipTests)
-                                .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
-                                .run('clean deploy')
-                        }
-                    }
+                    runMavenLocalDeploy(params.SKIP_TESTS)
                 }
             }
             post {
@@ -116,29 +84,40 @@ pipeline {
             }
         }
 
-        stage('Upload artifacts to repository') {
+        stage('Upload artifacts to given repository') {
             when {
                 expression { return shouldDeployToRepository() }
             }
             steps {
                 script {
-                    dir(getRepoName()) {
-                        withCredentials([usernamePassword(credentialsId: 
env.MAVEN_SETTINGS_CONFIG_FILE_ID, usernameVariable: 'REPOSITORY_USER', 
passwordVariable: 'REPOSITORY_TOKEN')]) {
-                            configFileProvider([configFile(fileId: 
settingsXmlId, variable: 'MAVEN_SETTINGS_FILE')]) {
-                                new MavenCommand(this)
-                                    .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
-                                    .withProperty('wagon.source', 
"file://${getLocalDeploymentFolder()}")
-                                    .withProperty('wagon.target', 
env.MAVEN_DEPLOY_REPOSITORY)
-                                    .withProperty('wagon.targetId', 
'apache-snapshots-repository')
-                                    
.withProperty('apache.snapshot.repository.username', REPOSITORY_USER)
-                                    
.withProperty('apache.snapshot.repository.password', REPOSITORY_TOKEN)
-                                    
.run("org.codehaus.mojo:wagon-maven-plugin:2.0.2:merge-maven-repos")
-                            }
+                    withCredentials([usernamePassword(credentialsId: 
env.MAVEN_REPO_CREDS_ID, usernameVariable: 'REPOSITORY_USER', passwordVariable: 
'REPOSITORY_TOKEN')]) {
+                        configFileProvider([configFile(fileId: 
env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]) {
+                            getMavenCommand()
+                                .withSettingsXmlFile(MAVEN_SETTINGS_FILE)
+                                .withProperty('wagon.source', 
"file://${getLocalDeploymentFolder()}")
+                                .withProperty('wagon.target', 
env.MAVEN_DEPLOY_REPOSITORY)
+                                .withProperty('wagon.targetId', 
'apache-snapshots-repository')
+                                
.withProperty('apache.snapshot.repository.username', REPOSITORY_USER)
+                                
.withProperty('apache.snapshot.repository.password', REPOSITORY_TOKEN)
+                                
.run("org.codehaus.mojo:wagon-maven-plugin:2.0.2:merge-maven-repos")
                         }
                     }
                 }
             }
         }
+
+        stage('Create and push a new tag') {
+            steps {
+                script {
+                    projectVersion = getProjectVersion(false)
+                    dir(getRepoName()) {
+                        
githubscm.setUserConfigFromCreds(getGitAuthorPushCredsId())
+                        githubscm.tagRepository(projectVersion)
+                        githubscm.pushRemoteTag('origin', projectVersion, 
getGitAuthorPushCredsId())
+                    }
+                }
+            }
+        }
     }
     post {
         always {
@@ -175,11 +154,14 @@ void saveReports() {
     archiveArtifacts artifacts: 
'**/*.log,**/cypress/screenshots/**,**/cypress/videos/**', allowEmptyArchive: 
true
 }
 
-void checkoutRepo(String date = '') {
+void checkoutRepo() {
     deleteDir()
     checkout(githubscm.resolveRepository(getRepoName(), getGitAuthor(), 
getBuildBranch(), false, getGitAuthorCredsId()))
-    if (date) {
-        sh "git fetch && git checkout `git rev-list -n 1 --before=\"${date}\" 
${getBuildBranch()}`"
+    // need to manually checkout branch since on a detached branch after 
checkout command
+    sh "git checkout ${getBuildBranch()}"
+    checkoutDatetime = getCheckoutDatetime()
+    if (checkoutDatetime) {
+        sh "git checkout `git rev-list -n 1 --before=\"${checkoutDatetime}\" 
${getBuildBranch()}`"
     }
 }
 
@@ -208,23 +190,22 @@ String getBuildBranch() {
     return params.BUILD_BRANCH_NAME
 }
 
-String getProjectVersion() {
-    return params.PROJECT_VERSION
-}
-
 void setDeployPropertyIfNeeded(String key, def value) {
     if (value) {
         deployProperties[key] = value
     }
 }
 
-MavenCommand getMavenCommand() {
-    return new MavenCommand(this, ['-fae', '-ntp'])
-            .withOptions(env.BUILD_MVN_OPTS ? [ env.BUILD_MVN_OPTS ] : [])
-            .withProperty('full')
+MavenCommand getMavenCommand(String directory = '') {
+    directory = directory ?: getRepoName()
+    def mvnCmd = new MavenCommand(this, ['-fae', '-ntp'])
+                .withOptions(env.BUILD_MVN_OPTS ? [ env.BUILD_MVN_OPTS ] : [])
+                .inDirectory(directory)
+                .withProperty('full')
+    return mvnCmd
 }
 
-void runMavenDeploy(boolean skipTests = true) {
+void runMavenLocalDeploy(boolean skipTests = true) {
     mvnCmd = getMavenCommand()
     mvnCmd.withLocalDeployFolder(getLocalDeploymentFolder())
 
@@ -242,11 +223,19 @@ String getLocalDeploymentFolder() {
     return "${env.MAVEN_DEPLOY_LOCAL_DIR}/${getRepoName()}"
 }
 
-String getMavenRepoZipUrl() {
-    return "${env.MAVEN_DEPLOY_REPOSITORY.replaceAll('/content/', 
'/service/local/').replaceFirst('/*$', '')}/content-compressed"
+String getCheckoutDatetime() {
+    return params.GIT_CHECKOUT_DATETIME
 }
 
-String getCheckoutDate() {
-    currentDate = sh(returnStdout: true, script: 'date -u "+%Y-%m-%d"').trim()
-    return currentDate + ' 21:00'
+String getProjectVersionDate() {
+    date = (getCheckoutDatetime() =~ /(\d{4}-\d{2}-\d{2})/)[0][0]
+    return date.replace('-', '')
+}
+
+String getProjectVersion(boolean keepSnapshotSuffix = true) {
+    version = maven.mvnGetVersionProperty(getMavenCommand(), 
'project.parent.version')
+    if (keepSnapshotSuffix) {
+        return version.replace("-SNAPSHOT", 
"-${getProjectVersionDate()}-SNAPSHOT")
+    }
+    return version.replace("-SNAPSHOT", "-${getProjectVersionDate()}")
 }
diff --git a/.ci/jenkins/dsl/jobs.groovy b/.ci/jenkins/dsl/jobs.groovy
index 79929235e..f3a913b66 100644
--- a/.ci/jenkins/dsl/jobs.groovy
+++ b/.ci/jenkins/dsl/jobs.groovy
@@ -283,7 +283,7 @@ void setupReleasePromoteJob() {
 }
 
 void setupWeeklyDeployJob() {
-    def jobParams = JobParamsUtils.getBasicJobParams(this, 
'kogito-apps-weekly-deploy', JobType.OTHER, 
"${jenkins_path}/Jenkinsfile.weekly-deploy", 'Kogito Apps Weekly Deploy')
+    def jobParams = JobParamsUtils.getBasicJobParams(this, 
'kogito-apps.weekly-deploy', JobType.OTHER, 
"${jenkins_path}/Jenkinsfile.weekly-deploy", 'Kogito Apps Weekly Deploy')
     JobParamsUtils.setupJobParamsAgentDockerBuilderImageConfiguration(this, 
jobParams)
     jobParams.env.putAll([
         JENKINS_EMAIL_CREDS_ID: "${JENKINS_EMAIL_CREDS_ID}",
@@ -305,7 +305,8 @@ void setupWeeklyDeployJob() {
 
             booleanParam('SKIP_TESTS', false, 'Skip tests')
 
-            stringParam('PROJECT_VERSION', '', 'Project version')
+
+            stringParam('GIT_CHECKOUT_DATETIME', '', 'Git checkout date and 
time - (Y-m-d H:i)')
 
             booleanParam('SEND_NOTIFICATION', false, 'In case you want the 
pipeline to send a notification on CI channel for this run.')
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to