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 d69f769 Create Jenkins pipeline definition, and split out Jenkins
test-all builds to individual builds for each of the test targets
d69f769 is described below
commit d69f7696e4fa2a48795e2e7f08e9235455eeb15a
Author: Mick Semb Wever <[email protected]>
AuthorDate: Fri Jan 10 10:34:27 2020 +0100
Create Jenkins pipeline definition, and split out Jenkins test-all builds
to individual builds for each of the test targets
patch by Mick Semb Wever; reviewed by David Capwell for CASSANDRA-15496
---
.circleci/config.yml | 2 +-
.circleci/config.yml.HIGHRES | 2 +-
.circleci/config.yml.LOWRES | 2 +-
.jenkins/Jenkinsfile | 273 +++++++++++++++++++++++++++++++++++++++++++
build.xml | 6 +-
ide/idea/workspace.xml | 1 -
6 files changed, 277 insertions(+), 9 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index fee6f2c..b1ed0ef 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1085,4 +1085,4 @@ workflows:
# destination: dtest_<<parameters.file_tag>>
# - store_artifacts:
# path: ~/cassandra-dtest/logs
-# destination: dtest_<<parameters.file_tag>>_logs
\ No newline at end of file
+# destination: dtest_<<parameters.file_tag>>_logs
diff --git a/.circleci/config.yml.HIGHRES b/.circleci/config.yml.HIGHRES
index 7340d99..4bbef27 100644
--- a/.circleci/config.yml.HIGHRES
+++ b/.circleci/config.yml.HIGHRES
@@ -1085,4 +1085,4 @@ workflows:
# destination: dtest_<<parameters.file_tag>>
# - store_artifacts:
# path: ~/cassandra-dtest/logs
-# destination: dtest_<<parameters.file_tag>>_logs
\ No newline at end of file
+# destination: dtest_<<parameters.file_tag>>_logs
diff --git a/.circleci/config.yml.LOWRES b/.circleci/config.yml.LOWRES
index fee6f2c..b1ed0ef 100644
--- a/.circleci/config.yml.LOWRES
+++ b/.circleci/config.yml.LOWRES
@@ -1085,4 +1085,4 @@ workflows:
# destination: dtest_<<parameters.file_tag>>
# - store_artifacts:
# path: ~/cassandra-dtest/logs
-# destination: dtest_<<parameters.file_tag>>_logs
\ No newline at end of file
+# destination: dtest_<<parameters.file_tag>>_logs
diff --git a/.jenkins/Jenkinsfile b/.jenkins/Jenkinsfile
new file mode 100644
index 0000000..adb2a8d
--- /dev/null
+++ b/.jenkins/Jenkinsfile
@@ -0,0 +1,273 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+//
+// Jenkins declaration of how to build and test the current codebase.
+// Jenkins infrastructure related settings should be kept in
+//
https://github.com/apache/cassandra-builds/blob/master/jenkins-dsl/cassandra_job_dsl_seed.groovy
+//
+
+pipeline {
+ agent any
+ stages {
+ stage('Init') {
+ steps {
+ cleanWs()
+ }
+ }
+ stage('Build') {
+ steps {
+ build job: "${env.JOB_NAME}-artifacts"
+ }
+ }
+ stage('Test') {
+ parallel {
+ stage('JVM DTests') {
+ steps {
+ warnError('Tests unstable') {
+ build job: "${env.JOB_NAME}-test-jvm-dtest-forking"
+ }
+ }
+ post {
+ success {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('test-jvm-dtest-forking')
+ }
+ }
+ }
+ unstable {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('test-jvm-dtest-forking')
+ }
+ }
+ }
+ }
+ }
+ stage('units') {
+ steps {
+ warnError('Tests unstable') {
+ build job: "${env.JOB_NAME}-test"
+ }
+ }
+ 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('burn') {
+ steps {
+ warnError('Tests unstable') {
+ build job: "${env.JOB_NAME}-test-burn"
+ }
+ }
+ 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('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('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 {
+ 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')
+ }
+ }
+ }
+ }
+ }
+ stage('dtest-offheap') {
+ steps {
+ warnError('Tests unstable') {
+ build job: "${env.JOB_NAME}-dtest-offheap"
+ }
+ }
+ post {
+ success {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('dtest-offheap')
+ }
+ }
+ }
+ unstable {
+ warnError('missing test xml files') {
+ script {
+ copyTestResults('dtest-offheap')
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ stage('Summary') {
+ steps {
+ junit '**/TEST*.xml,**/cqlshlib.xml,**/nosetests.xml'
+
+ // the following should fail on any installation other than
builds.apache.org
+ // TODO: keep jenkins infrastructure related settings in
`cassandra_job_dsl_seed.groovy`
+ warnError('cannot send notifications') {
+ slackSend channel: '#cassandra-builds', message:
"${currentBuild.fullDisplayName} completed: ${currentBuild.result}. See
${env.BUILD_URL}"
+ emailext to: '[email protected]', subject: "Build
complete: ${currentBuild.fullDisplayName} [${currentBuild.result}]
${env.GIT_COMMIT}", body: '${CHANGES} ${JELLY_SCRIPT,template="text"}'
+ }
+ }
+ }
+}
+
+def copyTestResults(target) {
+ step([$class: 'CopyArtifact',
+ projectName: "${env.JOB_NAME}-${target}",
+ optional: true,
+ fingerprintArtifacts: true,
+ selector: [$class: 'StatusBuildSelector', stable: false],
+ target: target]);
+}
diff --git a/build.xml b/build.xml
index bd7878a..c307e26 100644
--- a/build.xml
+++ b/build.xml
@@ -1559,10 +1559,6 @@
</testmacro>
</target>
- <target name="test-all"
-
depends="eclipse-warnings,test,long-test,test-compression,pig-test,test-clientutil-jar"
- description="Run all tests except for those under test-burn" />
-
<!-- Use JaCoCo ant extension without needing externally saved lib -->
<target name="jacoco-init" depends="maven-ant-tasks-init">
<artifact:dependencies pathId="jacocoant.classpath">
@@ -1785,7 +1781,7 @@
]]>
</scriptdef>
- <target name="test" depends="build-test" description="Parallel Test Runner">
+ <target name="test" depends="eclipse-warnings,build-test"
description="Parallel Test Runner">
<path id="all-test-classes-path">
<fileset dir="${test.unit.src}" includes="**/${test.name}.java"
excludes="**/pig/*.java **/distributed/test/UpgradeTest*.java" />
</path>
diff --git a/ide/idea/workspace.xml b/ide/idea/workspace.xml
index e632b5f..4826f6c 100644
--- a/ide/idea/workspace.xml
+++ b/ide/idea/workspace.xml
@@ -324,7 +324,6 @@
<filter targetName="cql-test" isVisible="true" />
<filter targetName="cql-test-some" isVisible="true" />
<filter targetName="pig-test" isVisible="true" />
- <filter targetName="test-all" isVisible="true" />
<filter targetName="jacoco-init" isVisible="false" />
<filter targetName="jacoco-report" isVisible="false" />
<filter targetName="jacoco-cleanup" isVisible="true" />
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]