This is an automated email from the ASF dual-hosted git repository. matthieu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 7f96ed67e95c31d7f69b3f3db376971e66816555 Author: Jean Helou <[email protected]> AuthorDate: Sun Dec 6 21:56:31 2020 +0100 JAMES-3225 split unstable tests from primary pipeline --- Jenkinsfile | 41 ++++++++++++++-------- pom.xml | 20 +++++++++++ server/blob/blob-common/pom.xml | 6 ++++ server/blob/blob-storage-strategy/pom.xml | 6 ++++ .../apache/james/WithCassandraBlobStoreTest.java | 13 +++++++ server/container/guice/data-cassandra/pom.xml | 6 ++++ server/container/guice/jpa-smtp-common/pom.xml | 6 ++++ .../guice/mailrepository-cassandra/pom.xml | 6 ++++ .../guice/protocols/webadmin-jmap/pom.xml | 6 ++++ .../guice/protocols/webadmin-mail-over-web/pom.xml | 6 ++++ server/container/guice/sieve-file/pom.xml | 6 ++++ server/container/guice/sieve-jpa/pom.xml | 6 ++++ .../testing/custom-mailets-implementation/pom.xml | 6 ++++ .../container/guice/testing/custom-mailets/pom.xml | 6 ++++ server/container/guice/testing/dependency/pom.xml | 9 +++++ server/dns-service/dnsservice-api/pom.xml | 8 +++++ .../pom.xml | 21 ++++++++++- .../pom.xml | 20 +++++++++++ .../pom.xml | 21 +++++++++++ .../distributed-webadmin-integration-test/pom.xml | 22 +++++++++++- .../apache/james/junit/categories/Unstable.java | 24 +++++++++++++ 21 files changed, 249 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a2d2059..6b9d6f2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -34,8 +34,8 @@ pipeline { // ... setup any environment variables ... MVN_LOCAL_REPO_OPT = '-Dmaven.repo.local=.repository' MVN_TEST_FAIL_IGNORE = '-Dmaven.test.failure.ignore=true' - CI=true - LC_CTYPE = 'en_US.UTF-8' + CI = true + LC_CTYPE = 'en_US.UTF-8' } tools { @@ -49,12 +49,12 @@ pipeline { timeout(time: 10, unit: 'HOURS') // When we have test-fails e.g. we don't need to run the remaining steps skipStagesAfterUnstable() - buildDiscarder( + buildDiscarder( logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10') ) disableConcurrentBuilds() } - + triggers { issueCommentTrigger('.*test this please.*') } @@ -88,11 +88,26 @@ pipeline { } } - stage('Tests') { + stage('Stable Tests') { steps { echo 'Running tests' - // all tests is very very long (10 hours on Apache Jenkins) - sh 'mvn -B -e test' + // all tests run is very very long (10 hours on Apache Jenkins) + sh 'mvn -B -e -fae test ' + } + post { + always { + junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true) + junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true) + } + } + } + + stage('Unstable Tests') { + steps { + echo 'Running unstable tests' + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + sh 'mvn -B -e -fae test -Punstable-tests' + } } post { always { @@ -109,14 +124,13 @@ pipeline { sh 'mvn -B -e deploy -Pdeploy -DskipTests' } } - } - - // Do any post build stuff ... such as sending emails depending on the overall build result. + } +// Do any post build stuff ... such as sending emails depending on the overall build result. post { // If this build failed, send an email to the list. failure { script { - if(env.BRANCH_NAME == "master") { + if (env.BRANCH_NAME == "master") { emailext( subject: "[BUILD-FAILURE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'", body: """ @@ -133,7 +147,7 @@ Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BRANC // If this build didn't fail, but there were failing tests, send an email to the list. unstable { script { - if(env.BRANCH_NAME == "master") { + if (env.BRANCH_NAME == "master") { emailext( subject: "[BUILD-UNSTABLE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'", body: """ @@ -154,7 +168,7 @@ Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BRANC deleteDir() script { if (env.BRANCH_NAME == "master" && (currentBuild.previousBuild != null) && (currentBuild.previousBuild.result != 'SUCCESS')) { - emailext ( + emailext( subject: "[BUILD-STABLE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'", body: """ BUILD-STABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]': @@ -167,5 +181,4 @@ Is back to normal. } } } - } diff --git a/pom.xml b/pom.xml index 5187c3b..d471c25 100644 --- a/pom.xml +++ b/pom.xml @@ -3097,6 +3097,7 @@ <reuseForks>true</reuseForks> <!-- Fail tests longer than 20 minutes, prevent form random locking tests --> <forkedProcessTimeoutInSeconds>1200</forkedProcessTimeoutInSeconds> + <excludedGroups>unstable</excludedGroups> </configuration> </plugin> <plugin> @@ -3518,6 +3519,24 @@ </build> </profile> <profile> + <id>unstable-tests</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.2</version> + <configuration> + <excludedGroups></excludedGroups> + <groups>unstable</groups> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + <profile> <id>sortPom</id> <build> <plugins> @@ -3544,6 +3563,7 @@ </plugins> </build> </profile> + <profile> <id>partial-build</id> <build> diff --git a/server/blob/blob-common/pom.xml b/server/blob/blob-common/pom.xml index d383468..2b11b69 100644 --- a/server/blob/blob-common/pom.xml +++ b/server/blob/blob-common/pom.xml @@ -38,6 +38,12 @@ <artifactId>blob-api</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> </dependency> diff --git a/server/blob/blob-storage-strategy/pom.xml b/server/blob/blob-storage-strategy/pom.xml index c462b0b..3cf0b1e 100644 --- a/server/blob/blob-storage-strategy/pom.xml +++ b/server/blob/blob-storage-strategy/pom.xml @@ -41,6 +41,12 @@ <artifactId>blob-api</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-util</artifactId> </dependency> diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java index 2bf74d8..785dc20 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java @@ -19,6 +19,8 @@ package org.apache.james; +import org.apache.james.junit.categories.Unstable; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.extension.RegisterExtension; class WithCassandraBlobStoreTest implements MailsShouldBeWellReceived { @@ -26,4 +28,15 @@ class WithCassandraBlobStoreTest implements MailsShouldBeWellReceived { static JamesServerExtension jamesServerExtension = WithCassandraBlobStoreImmutableTest.baseExtensionBuilder() .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) .build(); + + @Override + @Tag(Unstable.TAG) + public void mailsShouldBeWellReceived(GuiceJamesServer server) throws Exception { + MailsShouldBeWellReceived.super.mailsShouldBeWellReceived(server); + } + @Override + @Tag(Unstable.TAG) + public void mailsShouldBeWellReceivedByBothRecipient(GuiceJamesServer server) throws Exception { + MailsShouldBeWellReceived.super.mailsShouldBeWellReceivedByBothRecipient(server); + } } diff --git a/server/container/guice/data-cassandra/pom.xml b/server/container/guice/data-cassandra/pom.xml index adfd27c..87cdb77 100644 --- a/server/container/guice/data-cassandra/pom.xml +++ b/server/container/guice/data-cassandra/pom.xml @@ -52,6 +52,12 @@ <artifactId>james-server-guice-configuration</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> </dependency> diff --git a/server/container/guice/jpa-smtp-common/pom.xml b/server/container/guice/jpa-smtp-common/pom.xml index 0e60340..b8609ba 100644 --- a/server/container/guice/jpa-smtp-common/pom.xml +++ b/server/container/guice/jpa-smtp-common/pom.xml @@ -70,6 +70,12 @@ <artifactId>james-server-jpa-common-guice</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>${james.groupId}</groupId> <artifactId>queue-activemq-guice</artifactId> </dependency> diff --git a/server/container/guice/mailrepository-cassandra/pom.xml b/server/container/guice/mailrepository-cassandra/pom.xml index 93d0a66..ce88ad0 100644 --- a/server/container/guice/mailrepository-cassandra/pom.xml +++ b/server/container/guice/mailrepository-cassandra/pom.xml @@ -56,6 +56,12 @@ <artifactId>james-server-mailrepository-memory</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> </dependency> diff --git a/server/container/guice/protocols/webadmin-jmap/pom.xml b/server/container/guice/protocols/webadmin-jmap/pom.xml index 488c1cf..be7a0ce 100644 --- a/server/container/guice/protocols/webadmin-jmap/pom.xml +++ b/server/container/guice/protocols/webadmin-jmap/pom.xml @@ -33,6 +33,12 @@ <dependencies> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-webadmin-core</artifactId> </dependency> diff --git a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml index e8abab1..ae61524 100644 --- a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml +++ b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml @@ -37,6 +37,12 @@ <artifactId>james-server-queue-api</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-webadmin-core</artifactId> </dependency> diff --git a/server/container/guice/sieve-file/pom.xml b/server/container/guice/sieve-file/pom.xml index dbe48c7..43d04f5 100644 --- a/server/container/guice/sieve-file/pom.xml +++ b/server/container/guice/sieve-file/pom.xml @@ -39,6 +39,12 @@ <artifactId>james-server-data-file</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> </dependency> diff --git a/server/container/guice/sieve-jpa/pom.xml b/server/container/guice/sieve-jpa/pom.xml index 0339775..27b5019 100644 --- a/server/container/guice/sieve-jpa/pom.xml +++ b/server/container/guice/sieve-jpa/pom.xml @@ -39,6 +39,12 @@ <artifactId>james-server-data-jpa</artifactId> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> </dependency> diff --git a/server/container/guice/testing/custom-mailets-implementation/pom.xml b/server/container/guice/testing/custom-mailets-implementation/pom.xml index 06d9fe3..ec81bcb 100644 --- a/server/container/guice/testing/custom-mailets-implementation/pom.xml +++ b/server/container/guice/testing/custom-mailets-implementation/pom.xml @@ -35,6 +35,12 @@ <version>${project.version}</version> </dependency> <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> </dependency> diff --git a/server/container/guice/testing/custom-mailets/pom.xml b/server/container/guice/testing/custom-mailets/pom.xml index ca42a9a..28f8eff 100644 --- a/server/container/guice/testing/custom-mailets/pom.xml +++ b/server/container/guice/testing/custom-mailets/pom.xml @@ -45,6 +45,12 @@ <artifactId>james-server-guice-custom-mailets-dependency</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/server/container/guice/testing/dependency/pom.xml b/server/container/guice/testing/dependency/pom.xml index 7856de7..a49f20d 100644 --- a/server/container/guice/testing/dependency/pom.xml +++ b/server/container/guice/testing/dependency/pom.xml @@ -30,4 +30,13 @@ <name>Apache James :: Server :: Guice :: Mailet :: Custom testing mailets :: dependency</name> <description>Dependency not part of James classpath that custom mailets can depends on</description> + + <dependencies> + <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/server/dns-service/dnsservice-api/pom.xml b/server/dns-service/dnsservice-api/pom.xml index 4375f41..3b6357f 100644 --- a/server/dns-service/dnsservice-api/pom.xml +++ b/server/dns-service/dnsservice-api/pom.xml @@ -31,4 +31,12 @@ <packaging>jar</packaging> <name>Apache James :: Server :: DNS Service :: API</name> + <dependencies> + <dependency> + <!-- Added because of https://issues.apache.org/jira/browse/SUREFIRE-1266 --> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + </dependencies> </project> diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml index ef8abaf..d75dc63 100644 --- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml +++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml @@ -221,5 +221,24 @@ </plugin> </plugins> </build> - + <profiles> + <profile> + <id>unstable-tests</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.2</version> + <configuration> + <excludedGroups></excludedGroups> + <groups>unstable</groups> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + </profiles> </project> diff --git a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml index 6b2a233..7cdd223 100644 --- a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml +++ b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml @@ -169,4 +169,24 @@ </plugin> </plugins> </build> + <profiles> + <profile> + <id>unstable-tests</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.2</version> + <configuration> + <excludedGroups></excludedGroups> + <groups combine.self="override">unstable</groups> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + </profiles> </project> diff --git a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml index c4bceb8..a779cf9 100644 --- a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml +++ b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml @@ -126,6 +126,7 @@ <forkedProcessTimeoutInSeconds>1200</forkedProcessTimeoutInSeconds> <!-- Junit 5 move from Category to Tag, and it need tag's name as parameter --> <groups combine.self="override">BasicFeature</groups> + <excludedGroups>unstable</excludedGroups> <properties> <includeTags>junit5</includeTags> </properties> @@ -133,4 +134,24 @@ </plugin> </plugins> </build> + <profiles> + <profile> + <id>unstable-tests</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.2</version> + <configuration> + <excludedGroups></excludedGroups> + <groups>unstable</groups> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + </profiles> </project> diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/pom.xml b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/pom.xml index 8d603f2..1bf9a9c 100644 --- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/pom.xml +++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/pom.xml @@ -101,9 +101,29 @@ <reuseForks>true</reuseForks> <!-- Fail tests longer than 20 minutes, prevent form random locking tests --> <forkedProcessTimeoutInSeconds>1200</forkedProcessTimeoutInSeconds> - <groups combine.self="override">BasicFeature</groups> + <groups combine.self="override">BasicFeature&!unstable</groups> </configuration> </plugin> </plugins> </build> + <profiles> + <profile> + <id>unstable-tests</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.2</version> + <configuration> + <excludedGroups></excludedGroups> + <groups combine.self="override">BasicFeature&unstable</groups> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + </profiles> </project> diff --git a/server/testing/src/main/java/org/apache/james/junit/categories/Unstable.java b/server/testing/src/main/java/org/apache/james/junit/categories/Unstable.java new file mode 100644 index 0000000..6126e26 --- /dev/null +++ b/server/testing/src/main/java/org/apache/james/junit/categories/Unstable.java @@ -0,0 +1,24 @@ +/**************************************************************** + * 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 * + * * + * http://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. * + ****************************************************************/ + +package org.apache.james.junit.categories; + +public interface Unstable { + String TAG = "unstable"; +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
