From 60b6e42fccc2dc2181c4ff8e7c095b9759ff52c0 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 3 Mar 2020 16:20:21 +0100 Subject: [PATCH 1/8] skip unit tests in integration test stage --- Jenkinsfile | 2 +- pom.xml | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 010a583f6e..bd8cfd25ee 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -37,7 +37,7 @@ node('docker') { } stage('Integration Test') { - mvn 'verify -Pit -pl :scm-webapp,:scm-it -Dmaven.test.failure.ignore=true' + mvn 'verify -Pit -DskipUnitTests -pl :scm-webapp,:scm-it -Dmaven.test.failure.ignore=true' } stage('SonarQube') { diff --git a/pom.xml b/pom.xml index a472742c11..f8952bbd6a 100644 --- a/pom.xml +++ b/pom.xml @@ -480,6 +480,13 @@ org.apache.maven.plugins maven-surefire-plugin 2.22.0 + + + ${skipUnitTests} + @@ -881,7 +888,9 @@ ./scm-ui/target/frontend/buildfrontend-node/node-v${nodejs.version}-linux-x64/bin/node - + + ${skipTests} From 6e1102dbd5e0d2357155c1aaf320c9af7d42c98a Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 09:54:09 +0100 Subject: [PATCH 2/8] added more options to control which frontend scripts are executed durring build --- scm-ui/pom.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scm-ui/pom.xml b/scm-ui/pom.xml index 3525b79563..d4023998f6 100644 --- a/scm-ui/pom.xml +++ b/scm-ui/pom.xml @@ -18,8 +18,9 @@ build - false false + ${skipTests} + false typescript ui-extensions/src,ui-components/src,ui-webapp/src **/*.test.js,src/tests/** @@ -88,6 +89,7 @@ run + ${skipFrontendBuild} @@ -99,7 +101,7 @@ - ${skipTests} + ${skipFrontendTests} From bf15f7af7aca334f9bb3ce6e3a457c31e28c74d0 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 09:54:42 +0100 Subject: [PATCH 3/8] skipt frontend build and scm-it in unit-test stage --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bd8cfd25ee..8364f77832 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,7 +33,7 @@ node('docker') { } stage('Unit Test') { - mvn 'test -Pcoverage -Dmaven.test.failure.ignore=true' + mvn 'test -DskipFrontendBuild -DskipTypecheck -Pcoverage -pl !scm-it -Dmaven.test.failure.ignore=true' } stage('Integration Test') { From 94d9c574a240c8380b954312c750ee7e39e0cd42 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 10:14:59 +0100 Subject: [PATCH 4/8] execute unit tests and integration tests in parallel --- Jenkinsfile | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8364f77832..d90856d619 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -32,13 +32,18 @@ node('docker') { mvn 'clean install -DskipTests' } - stage('Unit Test') { - mvn 'test -DskipFrontendBuild -DskipTypecheck -Pcoverage -pl !scm-it -Dmaven.test.failure.ignore=true' - } - - stage('Integration Test') { - mvn 'verify -Pit -DskipUnitTests -pl :scm-webapp,:scm-it -Dmaven.test.failure.ignore=true' - } + parallel( + unitTest: { + stage('Unit Test') { + mvn 'test -DskipFrontendBuild -DskipTypecheck -Pcoverage -pl !scm-it -Dmaven.test.failure.ignore=true' + } + }, + integrationTest: { + stage('Integration Test') { + mvn 'verify -Pit -DskipUnitTests -pl :scm-webapp,:scm-it -Dmaven.test.failure.ignore=true' + } + } + ) stage('SonarQube') { From c262d5daf4e85c56780e2c11e7eff57191f9fc00 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 12:12:57 +0100 Subject: [PATCH 5/8] disable application logs durring ci build --- Jenkinsfile | 2 + scm-webapp/src/main/resources/logback.ci.xml | 39 ++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 scm-webapp/src/main/resources/logback.ci.xml diff --git a/Jenkinsfile b/Jenkinsfile index d90856d619..6c78155a85 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -109,6 +109,8 @@ String mainBranch Maven setupMavenBuild() { Maven mvn = new MavenWrapperInDocker(this, "scmmanager/java-build:11.0.6_10") + // disable logging durring the build + mvn.additionalArgs += ' -Dlogback.configurationFile=scm-webapp/src/main/resources/logback.ci.xml' if (isMainBranch()) { // Release starts javadoc, which takes very long, so do only for certain branches diff --git a/scm-webapp/src/main/resources/logback.ci.xml b/scm-webapp/src/main/resources/logback.ci.xml new file mode 100644 index 0000000000..428d3e1350 --- /dev/null +++ b/scm-webapp/src/main/resources/logback.ci.xml @@ -0,0 +1,39 @@ + + + + + + + + From 6e59a654a687c7b70ab2358f77d15f4fbc1106cd Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 12:20:37 +0100 Subject: [PATCH 6/8] reduce massive webpack output --- scm-ui/ui-scripts/src/createPluginConfig.js | 1 + scm-ui/ui-scripts/src/webpack.config.js | 1 + 2 files changed, 2 insertions(+) diff --git a/scm-ui/ui-scripts/src/createPluginConfig.js b/scm-ui/ui-scripts/src/createPluginConfig.js index 3e210fa022..6057ccc997 100644 --- a/scm-ui/ui-scripts/src/createPluginConfig.js +++ b/scm-ui/ui-scripts/src/createPluginConfig.js @@ -19,6 +19,7 @@ module.exports = function(mode) { [name]: [path.resolve(__dirname, "webpack-public-path.js"), packageJSON.main || "src/main/js/index.js"] }, mode, + stats: "minimal", devtool: "source-map", target: "web", node: { diff --git a/scm-ui/ui-scripts/src/webpack.config.js b/scm-ui/ui-scripts/src/webpack.config.js index cf63c1da3c..e6cc362a67 100644 --- a/scm-ui/ui-scripts/src/webpack.config.js +++ b/scm-ui/ui-scripts/src/webpack.config.js @@ -25,6 +25,7 @@ console.log(`build ${mode} bundles`); module.exports = [ { mode, + stats: "minimal", context: root, entry: { webapp: [path.resolve(__dirname, "webpack-public-path.js"), "./ui-webapp/src/index.tsx"] From b8998b1dfff08f704a85a37af7a30ac843e7397e Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 12:49:30 +0100 Subject: [PATCH 7/8] reove duplicated jaxb implementation --- pom.xml | 6 ------ scm-core/pom.xml | 5 ----- 2 files changed, 11 deletions(-) diff --git a/pom.xml b/pom.xml index f8952bbd6a..f936b8890d 100644 --- a/pom.xml +++ b/pom.xml @@ -399,12 +399,6 @@ ${jaxb.version} - - com.sun.xml.bind - jaxb-impl - ${jaxb.version} - - org.glassfish.jaxb jaxb-runtime diff --git a/scm-core/pom.xml b/scm-core/pom.xml index ec3b884fd6..3c7d67c2d8 100644 --- a/scm-core/pom.xml +++ b/scm-core/pom.xml @@ -152,11 +152,6 @@ jaxb-api - - com.sun.xml.bind - jaxb-impl - - org.glassfish.jaxb jaxb-runtime From 52fb900cf3677e842f66adbc95769ec6acd25a5a Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 4 Mar 2020 12:56:38 +0100 Subject: [PATCH 8/8] reduce logging of scm-it test instance --- Jenkinsfile | 4 +++- scm-it/pom.xml | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6c78155a85..6257958546 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -110,7 +110,9 @@ String mainBranch Maven setupMavenBuild() { Maven mvn = new MavenWrapperInDocker(this, "scmmanager/java-build:11.0.6_10") // disable logging durring the build - mvn.additionalArgs += ' -Dlogback.configurationFile=scm-webapp/src/main/resources/logback.ci.xml' + def logConf = "scm-webapp/src/main/resources/logback.ci.xml" + mvn.additionalArgs += " -Dlogback.configurationFile=${logConf}" + mvn.additionalArgs += " -Dscm-it.logbackConfiguration=${logConf}" if (isMainBranch()) { // Release starts javadoc, which takes very long, so do only for certain branches diff --git a/scm-it/pom.xml b/scm-it/pom.xml index 9064a39fc1..8cc56d332f 100644 --- a/scm-it/pom.xml +++ b/scm-it/pom.xml @@ -204,6 +204,10 @@ sonia.scm.classloading.lifecycle simple + + logback.configurationFile + ${scm-it.logbackConfiguration} + /scm @@ -237,10 +241,10 @@ DEVELOPMENT target/scm-it + ${project.basedir}/../scm-webapp/src/main/resources/logback.default.xml -