Merge branch 'cassandra-2.2' into cassandra-3.0

This commit is contained in:
Mick Semb Wever 2020-08-04 10:44:11 +02:00
commit 2844454669
No known key found for this signature in database
GPG Key ID: E91335D77E3E87CB
2 changed files with 129 additions and 183 deletions

308
.jenkins/Jenkinsfile vendored
View File

@ -37,140 +37,104 @@ pipeline {
}
}
stage('Test') {
parallel {
stage('JVM DTests') {
steps {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-jvm-dtest"
}
}
post {
success {
warnError('missing test xml files') {
script {
copyTestResults('jvm-dtest')
}
}
}
unstable {
warnError('missing test xml files') {
script {
copyTestResults('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')
}
}
stage('units') {
steps {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-test"
post {
always {
warnError('missing test xml files') {
script {
copyTestResults('jvm-dtest', jvm_dtest.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"
}
}
post {
success {
warnError('missing test xml files') {
script {
copyTestResults('long-test')
}
}
}
unstable {
warnError('missing test xml files') {
script {
copyTestResults('long-test')
}
}
}
}
stage('units') {
steps {
script {
test = build job: "${env.JOB_NAME}-test", propagate: false
if (test.result != 'SUCCESS') unstable('unit 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', test.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 {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-test-compression"
}
}
post {
success {
warnError('missing test xml files') {
script {
copyTestResults('test-compression')
}
}
}
unstable {
warnError('missing test xml files') {
script {
copyTestResults('test-compression')
}
}
}
}
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')
}
}
stage('cqlsh') {
steps {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-cqlsh-tests"
post {
always {
warnError('missing test xml files') {
script {
copyTestResults('long-test', long_test.getNumber())
}
}
}
post {
success {
warnError('missing test xml files') {
script {
copyTestResults('cqlsh-test')
}
}
}
}
stage('burn') {
steps {
script {
burn = build job: "${env.JOB_NAME}-test-burn", propagate: false
if (burn.result != 'SUCCESS') unstable('burn test failures')
}
}
post {
always {
warnError('missing test xml files') {
script {
copyTestResults('test-burn', burn.getNumber())
}
}
}
}
}
stage('compression') {
steps {
script {
compression = build job: "${env.JOB_NAME}-test-compression", propagate: false
if (compression.result != 'SUCCESS') unstable('compression failures')
}
}
post {
always {
warnError('missing test xml files') {
script {
copyTestResults('test-compression', compression.getNumber())
}
}
}
}
}
stage('cqlsh') {
steps {
script {
cqlsh = build job: "${env.JOB_NAME}-cqlsh-tests", propagate: false
if (cqlsh.result != 'SUCCESS') unstable('cqlsh failures')
}
unstable {
}
post {
always {
warnError('missing test xml files') {
script {
copyTestResults('cqlsh-test')
copyTestResults('cqlsh-test', cqlsh.getNumber())
}
}
}
@ -179,94 +143,76 @@ pipeline {
}
}
stage('Distributed Test') {
parallel {
stage('dtest') {
steps {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-dtest"
parallel {
stage('dtest') {
steps {
script {
dtest = build job: "${env.JOB_NAME}-dtest", propagate: false
if (dtest.result != 'SUCCESS') unstable('dtest failures')
}
}
post {
always {
warnError('missing test xml files') {
script {
copyTestResults('dtest', dtest.getNumber())
}
}
}
post {
success {
warnError('missing test xml files') {
script {
copyTestResults('dtest')
}
}
}
unstable {
warnError('missing test xml files') {
script {
copyTestResults('dtest')
}
}
}
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-large') {
steps {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-dtest-large"
}
}
post {
success {
warnError('missing test xml files') {
script {
copyTestResults('dtest-large')
}
}
}
unstable {
warnError('missing test xml files') {
script {
copyTestResults('dtest-large')
}
}
}
}
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')
}
}
stage('dtest-novnode') {
steps {
warnError('Tests unstable') {
build job: "${env.JOB_NAME}-dtest-novnode"
}
}
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('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: 'builds@cassandra.apache.org', 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: 'builds@cassandra.apache.org', 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]);
}

View File

@ -154,8 +154,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