From b3caa607cf105f20af43e367bfb6a7122536f283 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 8 Feb 2021 10:48:21 +0100 Subject: [PATCH] Reduce time spend in configuration phase (#1528) Do not add scm-packaging modules to every build. These modules drastically increase the time Gradle spends in the configuration phase. To build a distribution of SCM-Manager pass -Pdistribution. Upgrade Gradle to 6.8.2. --- Jenkinsfile | 2 +- README.md | 14 ++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 20 +++++++++++++------- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index dd6e063b98..cc37dac2cc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -96,7 +96,7 @@ pipeline { } steps { withPublishEnivronment { - gradle "publish" + gradle "-Pdistribution publish" } } } diff --git a/README.md b/README.md index da3447c0df..a45016398c 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,20 @@ Then you can attach a debugger on port 5005. The port can be changed by using the `--debug-port` e.g.: `--debug-port=5006`. If you want to wait until a debugger is attached, before SCM-Manager starts you can use the `--debug-wait` option. +### Distribution + +SCM-Manager provides various modules to deploy SCM-Manager on differnt platforms (e.g. Docker, Helm, RPM, DEB, Windows). +Those modules are not build by default. +To build the distribution modules specify the `distribution` property e.g.: + +```bash +# on unix +./gradlew -Pdistribution distribution + +# on windows +gradlew.bat -Pdistribution distribution +``` + ### Properties for publishing The publishing process requires the following properties for authentication and signing. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4d9ca16491..2a563242c1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index 8cb4e9e5cc..e34f3d7b6b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -67,11 +67,17 @@ include 'scm-dao-xml' include 'scm-webapp' include 'scm-server' include 'scm-it' -include 'scm-packaging:unix' -include 'scm-packaging:windows' -include 'scm-packaging:deb' -include 'scm-packaging:rpm' -include 'scm-packaging:docker' -include 'scm-packaging:helm' -include 'scm-packaging:release-yaml' + +// Do not add scm-packaging modules to every build, +// These modules drastically increase the time Gradle spends in the configuration phase. +// To build a distribution of SCM-Manager you have to pass -Pdistribution +if (settings.hasProperty("distribution")) { + include 'scm-packaging:unix' + include 'scm-packaging:windows' + include 'scm-packaging:deb' + include 'scm-packaging:rpm' + include 'scm-packaging:docker' + include 'scm-packaging:helm' + include 'scm-packaging:release-yaml' +}