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

mck pushed a commit to branch cassandra-2.2
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-2.2 by this push:
     new bb2562b  Jenkinsfile fixes for wrong test reports being copied, and 
reports getting clobbered
bb2562b is described below

commit bb2562b7774caf0b5037c5cd10f5fe07f75ed92f
Author: Mick Semb Wever <[email protected]>
AuthorDate: Sat Jul 4 23:19:17 2020 +0200

    Jenkinsfile fixes for wrong test reports being copied, and reports getting 
clobbered
    
     - copy artifacts from specific build numbers, not lastest stage builds
     - presend script to avoid threads in the builds mailing list
     - Suffix "cassandra.testtag" value to the testsuite name, so testsuite 
elements are separated cleanly
    
     patch by Mick Semb Wever; reviewed by Berenguer Blasi for CASSANDRA-15925
---
 .jenkins/Jenkinsfile                               | 306 +++++++++------------
 .../CassandraXMLJUnitResultFormatter.java          |   4 +-
 2 files changed, 128 insertions(+), 182 deletions(-)

diff --git a/.jenkins/Jenkinsfile b/.jenkins/Jenkinsfile
index 77c111c..dc5982a 100644
--- a/.jenkins/Jenkinsfile
+++ b/.jenkins/Jenkinsfile
@@ -37,236 +37,182 @@ pipeline {
         }
       }
       stage('Test') {
-          parallel {
-            stage('JVM DTests') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-jvm-dtest"
+        parallel {
+          stage('JVM DTests') {
+            steps {
+              script {
+                jvm_dtest = build job: "${env.JOB_NAME}-jvm-dtest", propagate: 
false
+                if (jvm_dtest.result != 'SUCCESS') unstable('jvm-dtest 
failures')
+              }
+            }
+            post {
+              always {
+                  warnError('missing test xml files') {
+                      script {
+                          copyTestResults('jvm-dtest', jvm_dtest.getNumber())
+                      }
                   }
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('jvm-dtest')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('jvm-dtest')
-                        }
-                    }
-                }
+            }
+          }
+          stage('units') {
+            steps {
+              script {
+                test = build job: "${env.JOB_NAME}-test", propagate: false
+                if (test.result != 'SUCCESS') unstable('unit test failures')
               }
             }
-            stage('units') {
-                steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-test"
+            post {
+              always {
+                  warnError('missing test xml files') {
+                      script {
+                          copyTestResults('test', test.getNumber())
+                      }
                   }
-                }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('test')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('test')
-                        }
-                    }
-                }
               }
             }
-            stage('long units') {
-              steps {
-                  warnError('Tests unstable') {
-                      build job: "${env.JOB_NAME}-long-test"
+          }
+          stage('long units') {
+            steps {
+              script {
+                long_test = build job: "${env.JOB_NAME}-long-test", propagate: 
false
+                if (long_test.result != 'SUCCESS') unstable('long unit test 
failures')
+              }
+            }
+            post {
+              always {
+                  warnError('missing test xml files') {
+                      script {
+                          copyTestResults('long-test', long_test.getNumber())
+                      }
                   }
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('long-test')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('long-test')
-                        }
-                    }
-                }
+            }
+          }
+          stage('burn') {
+            steps {
+              script {
+                burn = build job: "${env.JOB_NAME}-test-burn", propagate: false
+                if (burn.result != 'SUCCESS') unstable('burn test failures')
               }
             }
-            stage('burn') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-test-burn"
+            post {
+              always {
+                  warnError('missing test xml files') {
+                      script {
+                          copyTestResults('test-burn', burn.getNumber())
+                      }
                   }
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('test-burn')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('test-burn')
-                        }
-                    }
-                }
+            }
+          }
+          stage('compression') {
+            steps {
+              script {
+                compression = build job: "${env.JOB_NAME}-test-compression", 
propagate: false
+                if (compression.result != 'SUCCESS') unstable('compression 
failures')
               }
             }
-            stage('compression') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-test-compression"
+            post {
+              always {
+                  warnError('missing test xml files') {
+                      script {
+                          copyTestResults('test-compression', 
compression.getNumber())
+                      }
                   }
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('test-compression')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('test-compression')
-                        }
-                    }
-                }
-              }
             }
           }
       }
-      stage('Distributed Test') {
-          parallel {
-            stage('dtest') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-dtest"
-                  }
-              }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest')
-                        }
-                    }
-                }
+    }
+    stage('Distributed Test') {
+        parallel {
+          stage('dtest') {
+            steps {
+              script {
+                dtest = build job: "${env.JOB_NAME}-dtest", propagate: false
+                if (dtest.result != 'SUCCESS') unstable('dtest failures')
               }
             }
-            stage('dtest-large') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-dtest-large"
+            post {
+              always {
+                  warnError('missing test xml files') {
+                      script {
+                          copyTestResults('dtest', dtest.getNumber())
+                      }
                   }
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest-large')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest-large')
-                        }
+            }
+          }
+          stage('dtest-large') {
+            steps {
+              script {
+                dtest_large = build job: "${env.JOB_NAME}-dtest-large", 
propagate: false
+                if (dtest_large.result != 'SUCCESS') unstable('dtest-large 
failures')
+              }
+            }
+            post {
+              always {
+                warnError('missing test xml files') {
+                    script {
+                        copyTestResults('dtest-large', dtest_large.getNumber())
                     }
                 }
               }
             }
-            stage('dtest-novnode') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-dtest-novnode"
-                  }
+          }
+          stage('dtest-novnode') {
+            steps {
+              script {
+                dtest_novnode = build job: "${env.JOB_NAME}-dtest-novnode", 
propagate: false
+                if (dtest_novnode.result != 'SUCCESS') unstable('dtest-novnode 
failures')
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest-novnode')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest-novnode')
-                        }
+            }
+            post {
+              always {
+                warnError('missing test xml files') {
+                    script {
+                        copyTestResults('dtest-novnode', 
dtest_novnode.getNumber())
                     }
                 }
               }
             }
-            stage('dtest-offheap') {
-              steps {
-                  warnError('Tests unstable') {
-                    build job: "${env.JOB_NAME}-dtest-offheap"
-                  }
+          }
+          stage('dtest-offheap') {
+            steps {
+              script {
+                dtest_offheap = build job: "${env.JOB_NAME}-dtest-offheap", 
propagate: false
+                if (dtest_offheap.result != 'SUCCESS') unstable('dtest-offheap 
failures')
               }
-              post {
-                success {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest-offheap')
-                        }
-                    }
-                }
-                unstable {
-                    warnError('missing test xml files') {
-                        script {
-                            copyTestResults('dtest-offheap')
-                        }
+            }
+            post {
+              always {
+                warnError('missing test xml files') {
+                    script {
+                        copyTestResults('dtest-offheap', 
dtest_offheap.getNumber())
                     }
                 }
               }
             }
           }
         }
+    }
     stage('Summary') {
       steps {
           sh "rm -fR cassandra-builds"
-          sh "git clone 
https://gitbox.apache.org/repos/asf/cassandra-builds.git";
+          sh "git clone --depth 1 --single-branch 
https://gitbox.apache.org/repos/asf/cassandra-builds.git";
           sh "./cassandra-builds/build-scripts/cassandra-test-report.sh"
           junit testResults: 
'**/build/test/**/TEST*.xml,**/cqlshlib.xml,**/nosetests.xml', 
testDataPublishers: [[$class: 'StabilityTestDataPublisher']]
 
-          // the following should fail on any installation other than 
builds.apache.org
+          // the following should fail on any installation other than 
ci-cassandra.apache.org
           //  TODO: keep jenkins infrastructure related settings in 
`cassandra_job_dsl_seed.groovy`
           warnError('cannot send notifications') {
               script {
                 changes = formatChanges(currentBuild.changeSets)
                 echo "changes: ${changes}"
               }
-              slackSend channel: '#cassandra-builds', message: ":apache: 
<${env.BUILD_URL}|${currentBuild.fullDisplayName}> completed: 
${currentBuild.result}. ${env.GIT_COMMIT}\n${changes}"
-              emailext to: '[email protected]', subject: "Build 
complete: ${currentBuild.fullDisplayName} [${currentBuild.result}] 
${env.GIT_COMMIT}", body: '''
+              slackSend channel: '#cassandra-builds', message: ":apache: 
<${env.BUILD_URL}|${currentBuild.fullDisplayName}> completed: 
${currentBuild.result}. 
<https://github.com/apache/cassandra/commit/${env.GIT_COMMIT}|${env.GIT_COMMIT}>\n${changes}"
+              emailext to: '[email protected]', subject: "Build 
complete: ${currentBuild.fullDisplayName} [${currentBuild.result}] 
${env.GIT_COMMIT}", presendScript: 
'${FILE,path="cassandra-builds/jenkins-dsl/cassandra_email_presend.groovy"}', 
body: '''
 -------------------------------------------------------------------------------
 Build ${ENV,var="JOB_NAME"} #${BUILD_NUMBER} ${BUILD_STATUS}
 URL: ${BUILD_URL}
@@ -290,12 +236,12 @@ ${FILE,path="cassandra-test-report.txt"}
   }
 }
 
-def copyTestResults(target) {
+def copyTestResults(target, build_number) {
     step([$class: 'CopyArtifact',
             projectName: "${env.JOB_NAME}-${target}",
             optional: true,
             fingerprintArtifacts: true,
-            selector: [$class: 'StatusBuildSelector', stable: false],
+            selector: specific("${build_number}"),
             target: target]);
 }
 
diff --git 
a/test/unit/org/apache/cassandra/CassandraXMLJUnitResultFormatter.java 
b/test/unit/org/apache/cassandra/CassandraXMLJUnitResultFormatter.java
index 066315d..40cfe5e 100644
--- a/test/unit/org/apache/cassandra/CassandraXMLJUnitResultFormatter.java
+++ b/test/unit/org/apache/cassandra/CassandraXMLJUnitResultFormatter.java
@@ -143,8 +143,8 @@ public class CassandraXMLJUnitResultFormatter implements 
JUnitResultFormatter, X
         doc = getDocumentBuilder().newDocument();
         rootElement = doc.createElement(TESTSUITE);
         String n = suite.getName();
-//        if (n != null && !tag.isEmpty())
-//            n = n + "-" + tag;
+        if (n != null && !tag.isEmpty())
+            n = n + "-" + tag;
         rootElement.setAttribute(ATTR_NAME, n == null ? UNKNOWN : n);
 
         //add the timestamp


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

Reply via email to