FINERACT-1470-2: Build issues

This commit is contained in:
Aleksandar Vidakovic
2022-05-06 08:46:24 +02:00
committed by Aleksandar Vidakovic
parent decedc52f8
commit 6aa668a5f5
12 changed files with 75 additions and 93 deletions
+7 -11
View File
@@ -29,15 +29,6 @@ jobs:
env:
TZ: Asia/Kolkata
steps:
- name: Set up cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 17
@@ -46,6 +37,11 @@ jobs:
java-version: '17'
distribution: 'zulu'
cache: gradle
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Congfigure vega-cli
run: npm i -g vega-cli --unsafe
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@859c33240bd026ce8d5f711f5adcc65c2f8eafc1
- name: Verify PostgreSQL connection
@@ -60,10 +56,10 @@ jobs:
- name: Install additional software
run: |
sudo apt-get update
sudo apt-get install ghostscript -y
sudo apt-get install ghostscript graphviz -y
- name: Basic Auth Build & Test
run: ./gradlew --no-daemon -q --console=plain licenseMain licenseTest check build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test -PdbType=postgresql
run: ./gradlew --no-daemon -q --console=plain build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test -PdbType=postgresql
- name: 2FA Build & Test
run: ./gradlew --no-daemon -q --console=plain :twofactor-tests:test --fail-fast -PdbType=postgresql
+7 -11
View File
@@ -28,15 +28,6 @@ jobs:
env:
TZ: Asia/Kolkata
steps:
- name: Set up cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 17
@@ -45,6 +36,11 @@ jobs:
java-version: '17'
distribution: 'zulu'
cache: gradle
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Congfigure vega-cli
run: npm i -g vega-cli --unsafe
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@859c33240bd026ce8d5f711f5adcc65c2f8eafc1
- name: Verify MariaDB connection
@@ -59,10 +55,10 @@ jobs:
- name: Install additional software
run: |
sudo apt-get update
sudo apt-get install ghostscript -y
sudo apt-get install ghostscript graphviz -y
- name: Basic Auth Build & Test
run: ./gradlew --no-daemon -q --console=plain licenseMain licenseTest check build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test
run: ./gradlew --no-daemon -q --console=plain build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test
- name: 2FA Build & Test
run: ./gradlew --no-daemon -q --console=plain :twofactor-tests:test --fail-fast
+1 -9
View File
@@ -18,15 +18,6 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
steps:
- name: Set up cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 17
@@ -34,6 +25,7 @@ jobs:
with:
java-version: '17'
distribution: 'zulu'
cache: gradle
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@859c33240bd026ce8d5f711f5adcc65c2f8eafc1
- name: Sonarqube
+8 -8
View File
@@ -58,7 +58,7 @@ buildscript {
plugins {
id "org.barfuin.gradle.taskinfo" version "1.4.0"
id 'com.adarshr.test-logger' version '3.2.0'
id 'com.diffplug.spotless' version '6.5.1' apply false
id 'com.diffplug.spotless' version '6.5.2' apply false
id 'org.nosphere.apache.rat' version '0.7.1' apply false
id 'com.github.hierynomus.license' version '0.16.1' apply false
id 'com.github.jk1.dependency-license-report' version '2.1' apply false
@@ -79,7 +79,7 @@ plugins {
id 'org.sonarqube' version '3.3'
id 'com.github.andygoossens.modernizer' version '1.6.2' apply false
id 'com.github.spotbugs' version '5.0.6' apply false
id 'se.thinkcode.cucumber-runner' version '0.0.10' apply false
id 'se.thinkcode.cucumber-runner' version '0.0.11' apply false
}
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.release.gradle"
@@ -92,8 +92,6 @@ ext['groovy.version'] = '3.0.10'
ext['swaggerFile'] = "$rootDir/fineract-provider/build/classes/java/main/static/fineract.yaml".toString()
allprojects {
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"
group = 'org.apache.fineract'
jgitver {
@@ -248,6 +246,7 @@ allprojects {
// Git build info
"**/git.properties",
".mailmap",
'**/images/diag-*.svg',
]
}
}
@@ -264,6 +263,7 @@ configure(project.fineractJavaProjects) {
apply plugin: 'com.github.spotbugs'
apply plugin: 'com.github.andygoossens.modernizer'
apply plugin: 'se.thinkcode.cucumber-runner'
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"
/* define the valid syntax level for source files */
@@ -366,10 +366,6 @@ configure(project.fineractJavaProjects) {
lineEndings 'UNIX'
}
// compileJava may create more source files into generated, hence we need to run these tasks after it
licenseMain.dependsOn compileJava
processResources.dependsOn compileJava
// If we are running Gradle within Eclipse to enhance classes,
// set the classes directory to point to Eclipse's default build directory
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
@@ -502,6 +498,10 @@ configure(project.fineractJavaProjects) {
}
}
compileJava {
dependsOn(rat, licenseMain, licenseTest)
}
dependencies {
implementation (
'ch.qos.logback:logback-core',
@@ -27,10 +27,9 @@ dependencyManagement {
mavenBom 'org.jetbrains.kotlin:kotlin-bom:1.6.21'
mavenBom 'org.junit:junit-bom:5.8.2'
mavenBom 'com.fasterxml.jackson:jackson-bom:2.13.2.1'
mavenBom 'io.cucumber:cucumber-bom:7.3.3'
mavenBom 'io.cucumber:cucumber-bom:7.3.4'
mavenBom 'io.netty:netty-bom:4.1.76.Final'
mavenBom 'org.mockito:mockito-bom:4.5.1'
mavenBom 'io.github.swagger2markup:swagger2markup-bom:1.3.4'
}
dependencies {
@@ -62,11 +61,11 @@ dependencyManagement {
exclude 'com.sun.mail:javax.mail'
}
dependency 'org.quartz-scheduler:quartz:2.3.2'
dependency 'com.amazonaws:aws-java-sdk-s3:1.12.210'
dependency 'com.amazonaws:aws-java-sdk-s3:1.12.213'
dependency 'org.ehcache:ehcache:3.10.0'
dependency 'com.github.spullara.mustache.java:compiler:0.9.10'
dependency 'com.jayway.jsonpath:json-path:2.7.0'
dependency 'org.apache.tika:tika-core:2.3.0'
dependency 'org.apache.tika:tika-core:2.4.0'
dependency 'org.apache.httpcomponents:httpclient:4.5.13'
dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4'
dependency 'jakarta.jms:jakarta.jms-api:2.0.3'
@@ -76,11 +75,11 @@ dependencyManagement {
dependency 'io.github.classgraph:classgraph:4.8.146'
dependency 'org.awaitility:awaitility:4.2.0'
dependency 'com.github.spotbugs:spotbugs-annotations:4.6.0'
dependency 'com.github.spotbugs:spotbugs-annotations:4.7.0'
dependency 'javax.cache:cache-api:1.1.1'
dependency 'org.mock-server:mockserver-junit-jupiter:5.13.2'
dependency 'org.webjars:webjars-locator-core:0.50'
dependency 'com.icegreen:greenmail-junit5:1.6.8'
dependency 'com.icegreen:greenmail-junit5:1.6.9'
dependency 'com.intuit.karate:karate-junit5:1.2.0.RC6'
// fineract client dependencies
@@ -131,7 +130,7 @@ dependencyManagement {
dependency 'org.springdoc:springdoc-openapi-security:1.6.8'
dependency 'org.springdoc:springdoc-openapi-javadoc:1.6.8'
dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.5.0'
dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.6.0'
dependency ('org.apache.activemq:activemq-broker:5.17.1') {
exclude 'javax.annotation:javax.annotation-api'
@@ -155,7 +154,7 @@ dependencyManagement {
exclude 'jakarta.activation:jakarta.activation-api'
}
dependency ('org.liquibase:liquibase-core:4.9.1') {
dependency ('org.liquibase:liquibase-core:4.10.0') {
exclude 'javax.xml.bind:jaxb-api'
}
+9 -15
View File
@@ -31,6 +31,7 @@ openApiMeta {
generatorName = 'Fineract'
packageName = 'org.apache.fineract.client'
outputFolder = "$buildDir/meta".toString()
// trick to make sure fineract.yaml is generated first
}
openApiValidate {
@@ -59,10 +60,7 @@ task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateT
generateModelTests = false
generateApiTests = false
ignoreFileOverride = "$projectDir/.openapi-generator-ignore"
// trick to make sure fineract.yaml is generated first
dependsOn = [
':fineract-provider:resolve'
]
dependsOn(':fineract-provider:resolve')
}
task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
@@ -82,9 +80,7 @@ task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.ta
npmName: '@apache/fineract-client',
npmRepository: "${npmRepository}"
]
dependsOn = [
':fineract-provider:resolve'
]
dependsOn(':fineract-provider:resolve')
}
task buildAsciidoc(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
@@ -97,17 +93,11 @@ task buildAsciidoc(type: org.openapitools.generator.gradle.plugin.tasks.Generate
apiPackage = 'org.apache.fineract.client.services'
invokerPackage = 'org.apache.fineract.client'
modelPackage = 'org.apache.fineract.client.models'
dependsOn = [
':fineract-provider:resolve'
]
dependsOn(':fineract-provider:resolve')
}
// TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.)
licenseMain.dependsOn(buildJavaSdk, licenseFormatMain, spotlessMiscApply)
licenseMain.dependsOn(buildTypescriptAngularSdk, licenseFormatMain, spotlessMiscApply)
licenseMain.dependsOn(buildAsciidoc, licenseFormatMain, spotlessMiscApply)
compileJava.dependsOn(licenseFormatMain, spotlessMiscApply)
compileJava.dependsOn(buildJavaSdk, buildTypescriptAngularSdk, buildAsciidoc, licenseFormatMain, spotlessMiscApply)
java {
// keep this at Java 8, not 17; see https://issues.apache.org/jira/browse/FINERACT-1214
@@ -134,3 +124,7 @@ test {
}
sourceSets.main.java.srcDir new File(buildDir, "generated/java/src/main/java")
// NOTE: Gradle suggested these dependencies
licenseFormatMain.dependsOn buildJavaSdk
licenseMain.dependsOn buildJavaSdk
+16 -23
View File
@@ -56,28 +56,25 @@ task prepareInputYaml {
doLast {
copy {
from file('config/swagger/fineract-input.yaml.template')
into file('config/swagger')
into file("${buildDir}/tmp/swagger")
rename { String filename -> return 'fineract-input.yaml' }
filter(ReplaceTokens, tokens: [VERSION: "${project.version}".toString()])
}
}
}
rat.dependsOn prepareInputYaml
resolve {
logging.captureStandardOutput LogLevel.INFO
logging.captureStandardOutput LogLevel.QUIET
outputFileName = 'fineract'
outputFormat = 'JSONANDYAML'
prettyPrint = true
prettyPrint = false
classpath = sourceSets.main.runtimeClasspath
outputDir = file("${buildDir}/classes/java/main/static")
openApiFile = file("config/swagger/fineract-input.yaml")
// openApiFile = file("${buildDir}/tmp/swagger/fineract-input.yaml")
sortOutput = true
// dependsOn(prepareInputYaml)
}
resolve.dependsOn prepareInputYaml
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -111,11 +108,6 @@ modernizer {
]
}
compileJava {
dependsOn rat
finalizedBy resolve
}
// If we are running Gradle within Eclipse to enhance classes with OpenJPA,
// set the classes directory to point to Eclipse's default build directory
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse')
@@ -158,7 +150,7 @@ configurations {
}
dependencies {
driver 'org.mariadb.jdbc:mariadb-java-client:2.7.5'
driver 'org.postgresql:postgresql:42.3.4'
driver 'org.postgresql:postgresql:42.3.5'
}
URLClassLoader loader = GroovyObject.class.classLoader
@@ -213,22 +205,21 @@ bootRun {
dependencies {
implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.5'
implementation 'org.postgresql:postgresql:42.3.4'
implementation 'org.postgresql:postgresql:42.3.5'
}
}
springBoot {
mainClass = 'org.apache.fineract.ServerApplication'
buildInfo()
}
bootJar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes('Main-Class': 'org.springframework.boot.loader.PropertiesLauncher', 'Implementation-Title': 'Apache Fineract', 'Implementation-Version': archiveVersion)
attributes('Main-Class': 'org.springframework.boot.loader.PropertiesLauncher', 'Implementation-Title': 'Apache Fineract', 'Implementation-Version': project.version)
}
dependsOn resolve
classifier = ''
dependsOn resolve
}
jib {
@@ -279,7 +270,7 @@ jib {
dependencies {
implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.5'
implementation 'org.postgresql:postgresql:42.3.4'
implementation 'org.postgresql:postgresql:42.3.5'
}
pluginExtensions {
@@ -296,7 +287,7 @@ jib {
}
}
tasks.jibDockerBuild.dependsOn = ["bootJar"]
tasks.jibDockerBuild.dependsOn(bootJar)
// Configuration for git properties gradle plugin
// https://github.com/n0mer/gradle-git-properties
@@ -310,9 +301,11 @@ gitProperties {
// make sure the generateGitProperties task always executes (even when git.properties is not changed)
generateGitProperties.outputs.upToDateWhen { false }
// Gradle 7.x asks for explicit dependencies between tasks
// NOTE: Gradle suggested these dependencies
jar.dependsOn resolve
test.dependsOn resolve
checkstyleMain.dependsOn resolve
checkstyleTest.dependsOn resolve
licenseMain.dependsOn processResources, generateGitProperties
spotbugsTest.dependsOn resolve
test.dependsOn resolve
compileTestJava.dependsOn ':fineract-client:processResources'
bootJarMainClassName.dependsOn resolve
+5 -4
View File
@@ -20,6 +20,7 @@ description = 'Fineract WAR'
apply plugin: 'war'
apply plugin: 'distribution'
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"
war {
archiveFileName = 'fineract-provider.war'
@@ -102,7 +103,7 @@ distributions {
}
}
tasks.binaryDistZip.enabled false
tasks.srcDistZip.enabled false
tasks.binaryDistTar.dependsOn = [war, ':fineract-doc:doc']
// tasks.srcDistTar.dependsOn prepareInputYaml
binaryDistZip.enabled false
srcDistZip.enabled false
// NOTE: Gradle suggested these dependencies
binaryDistTar.dependsOn(war, ':fineract-client:jar', ':fineract-provider:build', ':fineract-doc:doc')
+1
View File
@@ -19,3 +19,4 @@
org.gradle.jvmargs=-Xmx2g --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=null
buildType=BUILD
org.gradle.caching=true
org.gradle.parallel=true
+4 -2
View File
@@ -76,8 +76,10 @@ cargoStartLocal.dependsOn ':fineract-war:war'
cargoStartLocal.mustRunAfter 'testClasses'
test {
dependsOn cargoStartLocal
dependsOn (cargoStartLocal)
finalizedBy cargoStopLocal
}
compileTestJava.dependsOn ':fineract-client:processResources'
// NOTE: Gradle suggested these dependencies
compileTestJava.dependsOn(':fineract-provider:generateGitProperties', ':fineract-provider:processResources', ':fineract-provider:resolve')
spotbugsTest.dependsOn(':fineract-provider:generateGitProperties', ':fineract-provider:processResources', ':fineract-provider:resolve')
+5 -1
View File
@@ -73,6 +73,10 @@ cargoStartLocal.dependsOn ':fineract-war:war'
cargoStartLocal.mustRunAfter 'testClasses'
test {
dependsOn cargoStartLocal
dependsOn (cargoStartLocal)
finalizedBy cargoStopLocal
}
// NOTE: Gradle suggested these dependencies
compileTestJava.dependsOn(':fineract-provider:generateGitProperties', ':fineract-provider:processResources', ':fineract-provider:resolve')
spotbugsTest.dependsOn(':fineract-provider:generateGitProperties', ':fineract-provider:processResources', ':fineract-provider:resolve')
+5 -1
View File
@@ -73,6 +73,10 @@ cargoStartLocal.dependsOn ':fineract-war:war'
cargoStartLocal.mustRunAfter 'testClasses'
test {
dependsOn cargoStartLocal
dependsOn (cargoStartLocal)
finalizedBy cargoStopLocal
}
// NOTE: Gradle suggested these dependencies
compileTestJava.dependsOn(':fineract-provider:generateGitProperties', ':fineract-provider:processResources', ':fineract-provider:resolve')
spotbugsTest.dependsOn(':fineract-provider:generateGitProperties', ':fineract-provider:processResources', ':fineract-provider:resolve')