You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by al...@apache.org on 2022/02/19 17:49:57 UTC

[fineract] 02/02: FINERACT-1506: Add WAR artifact to release distribution again

This is an automated email from the ASF dual-hosted git repository.

aleks pushed a commit to branch 1.6.0
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit 1482eff30edfb945d3e3aade4604a9fe125853de
Author: Aleksandar Vidakovic <ch...@monkeysintown.com>
AuthorDate: Sat Feb 19 08:14:57 2022 +0100

    FINERACT-1506: Add WAR artifact to release distribution again
---
 README.md                      | 18 ++++-----
 fineract-provider/build.gradle | 85 +---------------------------------------
 fineract-war/build.gradle      | 89 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 99 insertions(+), 93 deletions(-)

diff --git a/README.md b/README.md
index be4a350..767629f 100644
--- a/README.md
+++ b/README.md
@@ -447,7 +447,7 @@ Releasing
 
 Before you use Gradle to create a release you need to make sure that you provide the proper GPG parameters. You have to options:
 
-1. Provide the parameters via ~/gradle/gradle.properties in your home folder:
+1. Provide the parameters via ~/.gradle/gradle.properties in your home folder:
 ```
 signing.gnupg.keyName=7890ABCD
 signing.gnupg.passphrase=secret
@@ -469,23 +469,23 @@ NOTE: Let's assume your GPG key ID would be "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789
 
 Above tasks will create the following files in folder build/distributions:
 
-- binary distribution file: apache-fineract-1.4.0-binary.tar.gz
-- ASCII armored signature for binary distribution: apache-fineract-1.4.0-binary.tar.gz.asc
-- SHA512 checksum for binary distribution: apache-fineract-1.4.0-binary.tar.gz.sha512
-- source distribution file: apache-fineract-1.4.0-src.tar.gz
-- ASCII armored signature for source distribution: apache-fineract-1.4.0-src.tar.gz.asc
-- SHA512 checksum for source distribution: apache-fineract-1.4.0-src.tar.gz.sha512
+- binary distribution file: apache-fineract-1.6.0-binary.tar.gz
+- ASCII armored signature for binary distribution: apache-fineract-1.6.0-binary.tar.gz.asc
+- SHA512 checksum for binary distribution: apache-fineract-1.6.0-binary.tar.gz.sha512
+- source distribution file: apache-fineract-1.6.0-src.tar.gz
+- ASCII armored signature for source distribution: apache-fineract-1.6.0-src.tar.gz.asc
+- SHA512 checksum for source distribution: apache-fineract-1.6.0-src.tar.gz.sha512
 
 The signatures are automatically verified by the build script. It will throw an exception if the verification fails.
 
 Additionally, you can verify the validity of the release distribution files e. g. with:
 ```
-gpg --verify build/distributions/apache-fineract-1.4.0-binary.tar.gz.asc
+gpg --verify build/distributions/apache-fineract-1.6.0-binary.tar.gz.asc
 ```
 
 The output should look somewhat like this:
 ```
-gpg: assuming signed data in 'build/distributions/apache-fineract-1.4.0-binary.tgz'
+gpg: assuming signed data in 'build/distributions/apache-fineract-1.6.0-binary.tgz'
 gpg: Signature made Mi 26 Aug 2020 17:17:45 CEST
 gpg:                using RSA key ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCD
 gpg: Good signature from "Aleksandar Vidakovic (Apache Fineract Release Manager) <al...@apache.org>" [ultimate]
diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle
index dc60d25..6808759 100644
--- a/fineract-provider/build.gradle
+++ b/fineract-provider/build.gradle
@@ -24,8 +24,6 @@ apply plugin: 'eclipse'
 apply plugin: 'org.springframework.boot'
 apply plugin: 'com.gorylenko.gradle-git-properties'
 apply plugin: 'io.swagger.core.v3.swagger-gradle-plugin'
-apply plugin: 'distribution'
-apply plugin: 'signing'
 apply plugin: 'com.google.cloud.tools.jib'
 
 // Custom OpenJPA enhancement
@@ -268,6 +266,7 @@ jar {
 }
 
 jar.dependsOn resolve
+jar.dependsOn bootJar
 
 jib {
     from {
@@ -331,88 +330,6 @@ jib {
 
 tasks.jibDockerBuild.dependsOn = ["bootJar"]
 
-tasks.withType(Tar) {
-    compression Compression.GZIP
-    extension 'tar.gz'
-}
-
-distributions {
-    binary {
-        if(project.hasProperty("distVersion")) {
-            distributionBaseName = "apache-fineract-$distVersion-binary"
-        } else {
-            distributionBaseName = "apache-fineract-binary"
-        }
-        contents {
-            from bootJar
-            // TODO: @vidakovic add war
-            // TODO: @vidakovic add client library
-            from("$rootDir/licenses/") {
-                into "licenses/"
-            }
-            from "$rootDir/LICENSE_RELEASE"
-            from "$rootDir/NOTICE_RELEASE"
-            rename ('LICENSE_RELEASE', 'LICENSE')
-            rename ('NOTICE_RELEASE', 'NOTICE')
-
-            from "$rootDir/DISCLAIMER"
-            from "$rootDir/README.md"
-        }
-    }
-    src {
-        if(project.hasProperty("distVersion")) {
-            distributionBaseName = "apache-fineract-$distVersion-src"
-        } else {
-            distributionBaseName = "apache-fineract-src"
-        }
-
-        contents {
-            from "$rootDir/"
-            exclude '**/build' , '.git', '**/.gradle', '.github', '**/.settings', '**/.project', '**/.classpath', '.idea', 'out', '._.DS_Store', '.DS_Store', 'WebContent', '**/.externalToolbuilders', '.theia', '.gitpod.yml', '.travis.yml', 'LICENSE_RELEASE', 'NOTICE_RELEASE', '**/licenses', '*.class', '**/bin', '*.log', '.dockerignore', '**/gradle', '**/.gitkeep'
-            rename ('LICENSE_SOURCE', 'LICENSE')
-            rename ('NOTICE_SOURCE', 'NOTICE')
-        }
-    }
-}
-
-tasks.binaryDistZip.enabled false
-tasks.srcDistZip.enabled false
-tasks.binaryDistTar.dependsOn bootJar
-tasks.srcDistTar.dependsOn prepareInputYaml
-
-// create signatures and checksums only if project parameter "fineract.release" is provided on the command line
-if( project.hasProperty("fineract.release") ) {
-    signing {
-        useGpgCmd()
-        sign (binaryDistTar, srcDistTar)
-    }
-    tasks.withType(Tar) { task ->
-        task.doLast {
-            ant.checksum file: task.archivePath, algorithm: 'SHA-512', fileext: '.sha512'
-        }
-    }
-    tasks.withType(Sign) { task ->
-        task.doLast {
-            task.getFilesToSign().each { f ->
-                new ByteArrayOutputStream().withStream { os ->
-                    def result = exec {
-                        workingDir "$buildDir/distributions"
-                        executable 'sh'
-                        args '-c', "gpg --verify ${f}.asc"
-                        standardOutput = os
-                    }
-                    if(result.exitValue==0) {
-                        println '+++ GPG signature correct!'
-                    } else {
-                        println '--- GPG signature incorrect!'
-                        throw new RuntimeException('--- GPG signature incorrect!')
-                    }
-                }
-            }
-        }
-    }
-}
-
 // Configuration for git properties gradle plugin
 // https://github.com/n0mer/gradle-git-properties
 gitProperties {
diff --git a/fineract-war/build.gradle b/fineract-war/build.gradle
index e45cbb5..cfb6e3e 100644
--- a/fineract-war/build.gradle
+++ b/fineract-war/build.gradle
@@ -19,6 +19,8 @@
 description = 'Fineract WAR'
 
 apply plugin: 'war'
+apply plugin: 'distribution'
+apply plugin: 'signing'
 
 war {
     archiveFileName = 'fineract-provider.war'
@@ -48,3 +50,90 @@ war {
 dependencies {
     implementation project(':fineract-provider')
 }
+
+tasks.withType(Tar) {
+    compression Compression.GZIP
+    extension 'tar.gz'
+}
+
+distributions {
+    binary {
+        if(project.hasProperty("distVersion")) {
+            distributionBaseName = "apache-fineract-$distVersion-binary"
+        } else {
+            distributionBaseName = "apache-fineract-binary"
+        }
+        contents {
+            from ("$rootDir/fineract-client/build/libs/") {
+                include 'fineract-client-*.jar'
+            }
+            from ("$rootDir/fineract-provider/build/libs/") {
+                include 'fineract-provider-*.jar'
+                exclude 'fineract-provider-*-plain.jar'
+            }
+            from war
+            from("$rootDir/licenses/") {
+                into "licenses/"
+            }
+            from "$rootDir/LICENSE_RELEASE"
+            from "$rootDir/NOTICE_RELEASE"
+            rename ('LICENSE_RELEASE', 'LICENSE')
+            rename ('NOTICE_RELEASE', 'NOTICE')
+
+            from "$rootDir/DISCLAIMER"
+            from "$rootDir/README.md"
+        }
+    }
+    src {
+        if(project.hasProperty("distVersion")) {
+            distributionBaseName = "apache-fineract-$distVersion-src"
+        } else {
+            distributionBaseName = "apache-fineract-src"
+        }
+
+        contents {
+            from "$rootDir/"
+            exclude '**/build' , '.git', '**/.gradle', '.github', '**/.settings', '**/.project', '**/.classpath', '.idea', 'out', '._.DS_Store', '.DS_Store', 'WebContent', '**/.externalToolbuilders', '.theia', '.gitpod.yml', '.travis.yml', 'LICENSE_RELEASE', 'NOTICE_RELEASE', '**/licenses', '*.class', '**/bin', '*.log', '.dockerignore', '**/gradle', '**/.gitkeep'
+            rename ('LICENSE_SOURCE', 'LICENSE')
+            rename ('NOTICE_SOURCE', 'NOTICE')
+        }
+    }
+}
+
+tasks.binaryDistZip.enabled false
+tasks.srcDistZip.enabled false
+tasks.binaryDistTar.dependsOn war
+// tasks.srcDistTar.dependsOn prepareInputYaml
+
+// create signatures and checksums only if project parameter "fineract.release" is provided on the command line
+if( project.hasProperty("fineract.release") ) {
+    signing {
+        useGpgCmd()
+        sign (binaryDistTar, srcDistTar)
+    }
+    tasks.withType(Tar) { task ->
+        task.doLast {
+            ant.checksum file: task.archivePath, algorithm: 'SHA-512', fileext: '.sha512'
+        }
+    }
+    tasks.withType(Sign) { task ->
+        task.doLast {
+            task.getFilesToSign().each { f ->
+                new ByteArrayOutputStream().withStream { os ->
+                    def result = exec {
+                        workingDir "$buildDir/distributions"
+                        executable 'sh'
+                        args '-c', "gpg --verify ${f}.asc"
+                        standardOutput = os
+                    }
+                    if(result.exitValue==0) {
+                        println '+++ GPG signature correct!'
+                    } else {
+                        println '--- GPG signature incorrect!'
+                        throw new RuntimeException('--- GPG signature incorrect!')
+                    }
+                }
+            }
+        }
+    }
+}