IntegrationTests for git build info
This commit is contained in:
committed by
Michael Vorburger ⛑️
parent
0a80195ac2
commit
394a7fb1d1
+1
-1
@@ -61,5 +61,5 @@ script:
|
||||
# using "&&" instead of several "-" means that integrationTest does not run if test fails,
|
||||
# and Docker test does not run if integration test fails, which makes PR failure easier to understand.
|
||||
# @see https://docs.travis-ci.com/user/job-lifecycle/#customizing-the-build-phase
|
||||
- ./gradlew clean && ./gradlew --console=plain licenseMain licenseTest licenseIntegrationTest check && ./gradlew --console=plain integrationTest && sudo service mysql stop && docker-compose build && docker-compose up -d && sleep 30s && http --verify=no --timeout 240 --check-status get https://localhost:8443/fineract-provider/actuator/health
|
||||
- ./gradlew --console=plain licenseMain licenseTest licenseIntegrationTest check && ./gradlew --console=plain integrationTest && sudo service mysql stop && docker-compose build && docker-compose up -d && sleep 30s && http --verify=no --timeout 240 --check-status get https://localhost:8443/fineract-provider/actuator/health
|
||||
# We stop the mysql system service when running the Docker test to avoid port 3306 conflicts (unless we run the mysql in docker-compose on another port; req. FINERACT-773)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
bin
|
||||
out/
|
||||
build
|
||||
src/main/resources/git.properties
|
||||
repos
|
||||
.classpath
|
||||
.project
|
||||
|
||||
+110
-106
@@ -24,33 +24,33 @@ gradle clean tomcatrunwar
|
||||
project.ext.jerseyVersion = '1.17'
|
||||
|
||||
buildscript {
|
||||
ext {
|
||||
openJPAVersion = '3.1.0'
|
||||
jacocoVersion = '0.8.5'
|
||||
}
|
||||
repositories {
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
maven { url "https://plugins.gradle.org/m2/" }
|
||||
}
|
||||
ext {
|
||||
openJPAVersion = '3.1.0'
|
||||
jacocoVersion = '0.8.5'
|
||||
}
|
||||
repositories {
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
maven { url "https://plugins.gradle.org/m2/" }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE'
|
||||
classpath 'com.bmuschko:gradle-tomcat-plugin:2.5',
|
||||
'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0',
|
||||
'org.zeroturnaround:gradle-jrebel-plugin:1.1.2',
|
||||
'org.springframework.boot:spring-boot-gradle-plugin:2.2.4.RELEASE'
|
||||
// below
|
||||
classpath "org.apache.openjpa:openjpa:$openJPAVersion"
|
||||
classpath 'com.radcortez.gradle:openjpa-gradle-plugin:3.1.0'
|
||||
classpath "org.nosphere.apache:creadur-rat-gradle:0.6.0"
|
||||
classpath "com.github.spotbugs:spotbugs-gradle-plugin:2.0.1"
|
||||
// Use Guava version 23+ as a workaround to spotbug intergration.
|
||||
// See: https://github.com/spotbugs/spotbugs-gradle-plugin/issues/128#issuecomment-535864882
|
||||
classpath 'com.google.guava:guava:28.1-jre'
|
||||
classpath "gradle.plugin.com.github.andygoossens:gradle-modernizer-plugin:1.3.0"
|
||||
classpath "gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:2.2.2"
|
||||
}
|
||||
dependencies {
|
||||
classpath 'io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE'
|
||||
classpath 'com.bmuschko:gradle-tomcat-plugin:2.5',
|
||||
'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0',
|
||||
'org.zeroturnaround:gradle-jrebel-plugin:1.1.2',
|
||||
'org.springframework.boot:spring-boot-gradle-plugin:2.2.4.RELEASE'
|
||||
// below
|
||||
classpath "org.apache.openjpa:openjpa:$openJPAVersion"
|
||||
classpath 'com.radcortez.gradle:openjpa-gradle-plugin:3.1.0'
|
||||
classpath 'gradle.plugin.org.nosphere.apache:creadur-rat-gradle:0.2.2'
|
||||
classpath "com.github.spotbugs:spotbugs-gradle-plugin:2.0.1"
|
||||
// Use Guava version 23+ as a workaround to spotbug intergration.
|
||||
// See: https://github.com/spotbugs/spotbugs-gradle-plugin/issues/128#issuecomment-535864882
|
||||
classpath 'com.google.guava:guava:28.1-jre'
|
||||
classpath "gradle.plugin.com.github.andygoossens:gradle-modernizer-plugin:1.3.0"
|
||||
classpath "gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:2.2.2"
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'io.spring.dependency-management'
|
||||
@@ -73,70 +73,70 @@ apply plugin: "com.gorylenko.gradle-git-properties"
|
||||
// apply plugin: 'pmd'
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom 'org.springframework:spring-framework-bom:5.2.3.RELEASE'
|
||||
}
|
||||
imports {
|
||||
mavenBom 'org.springframework:spring-framework-bom:5.2.3.RELEASE'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
dependency 'org.springframework.security.oauth:spring-security-oauth2:2.3.6.RELEASE'
|
||||
dependency 'org.apache.openjpa:openjpa:3.1.0'
|
||||
dependency 'com.squareup.retrofit:retrofit:1.6.1'
|
||||
dependency 'com.squareup.okhttp:okhttp:2.0.0'
|
||||
dependency 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
|
||||
dependency 'com.google.code.gson:gson:+'
|
||||
dependency 'com.google.guava:guava:28.1-jre'
|
||||
dependency 'joda-time:joda-time:+'
|
||||
dependency 'org.apache.commons:commons-email:1.3.3'
|
||||
dependency 'org.apache.commons:commons-lang3:+'
|
||||
dependency 'org.drizzle.jdbc:drizzle-jdbc:1.4'
|
||||
dependency 'com.lowagie:itext:2.1.7'
|
||||
dependency 'com.lowagie:itext-rtf:2.1.7'
|
||||
dependency 'org.mnode.ical4j:ical4j:1.0.4'
|
||||
dependency 'com.googlecode.flyway:flyway-core:2.1.1'
|
||||
dependency 'org.quartz-scheduler:quartz:+'
|
||||
dependency 'com.amazonaws:aws-java-sdk-s3:1.11.80'
|
||||
dependency 'net.sf.ehcache:ehcache:+'
|
||||
dependency 'com.github.spullara.mustache.java:compiler:0.8.12'
|
||||
dependency 'com.jayway.jsonpath:json-path:0.9.1'
|
||||
dependency 'org.apache.tika:tika-core:1.9'
|
||||
dependency 'org.apache.httpcomponents:httpclient:+'
|
||||
dependency 'io.swagger:swagger-jersey-jaxrs:1.5.15'
|
||||
dependency 'org.springframework:spring-jms:4.0.7.RELEASE'
|
||||
dependency 'org.apache.activemq:activemq-broker:+'
|
||||
dependency 'javax.validation:validation-api:+'
|
||||
dependency 'org.apache.bval:org.apache.bval.bundle:2.0.2'
|
||||
dependencySet(group: 'io.rest-assured', version: '3.3.0'){
|
||||
entry 'rest-assured'
|
||||
}
|
||||
dependency 'junit:junit:+'
|
||||
//dependency 'junit:junit-dep:4.11'
|
||||
dependency 'org.mockito:mockito-core:+'
|
||||
dependency 'org.slf4j:slf4j-simple:1.7.30'
|
||||
dependency 'com.mockrunner:mockrunner-jms:2.0.1'
|
||||
dependency 'com.mockrunner:mockrunner-jdbc:2.0.1'
|
||||
dependencies {
|
||||
dependency 'org.springframework.security.oauth:spring-security-oauth2:2.3.6.RELEASE'
|
||||
dependency 'org.apache.openjpa:openjpa:3.1.0'
|
||||
dependency 'com.squareup.retrofit:retrofit:1.6.1'
|
||||
dependency 'com.squareup.okhttp:okhttp:2.0.0'
|
||||
dependency 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
|
||||
dependency 'com.google.code.gson:gson:+'
|
||||
dependency 'com.google.guava:guava:28.1-jre'
|
||||
dependency 'joda-time:joda-time:+'
|
||||
dependency 'org.apache.commons:commons-email:1.3.3'
|
||||
dependency 'org.apache.commons:commons-lang3:+'
|
||||
dependency 'org.drizzle.jdbc:drizzle-jdbc:1.4'
|
||||
dependency 'com.lowagie:itext:2.1.7'
|
||||
dependency 'com.lowagie:itext-rtf:2.1.7'
|
||||
dependency 'org.mnode.ical4j:ical4j:1.0.4'
|
||||
dependency 'com.googlecode.flyway:flyway-core:2.1.1'
|
||||
dependency 'org.quartz-scheduler:quartz:+'
|
||||
dependency 'com.amazonaws:aws-java-sdk-s3:1.11.80'
|
||||
dependency 'net.sf.ehcache:ehcache:+'
|
||||
dependency 'com.github.spullara.mustache.java:compiler:0.8.12'
|
||||
dependency 'com.jayway.jsonpath:json-path:0.9.1'
|
||||
dependency 'org.apache.tika:tika-core:1.9'
|
||||
dependency 'org.apache.httpcomponents:httpclient:+'
|
||||
dependency 'io.swagger:swagger-jersey-jaxrs:1.5.15'
|
||||
dependency 'org.springframework:spring-jms:4.0.7.RELEASE'
|
||||
dependency 'org.apache.activemq:activemq-broker:+'
|
||||
dependency 'javax.validation:validation-api:+'
|
||||
dependency 'org.apache.bval:org.apache.bval.bundle:2.0.2'
|
||||
dependencySet(group: 'io.rest-assured', version: '3.3.0'){
|
||||
entry 'rest-assured'
|
||||
}
|
||||
dependency 'junit:junit:+'
|
||||
//dependency 'junit:junit-dep:4.11'
|
||||
dependency 'org.mockito:mockito-core:+'
|
||||
dependency 'org.slf4j:slf4j-simple:1.7.30'
|
||||
dependency 'com.mockrunner:mockrunner-jms:2.0.1'
|
||||
dependency 'com.mockrunner:mockrunner-jdbc:2.0.1'
|
||||
|
||||
dependencySet(group: 'com.sun.jersey', version: jerseyVersion) {
|
||||
entry 'jersey-core'
|
||||
entry 'jersey-servlet'
|
||||
entry 'jersey-server'
|
||||
entry 'jersey-json'
|
||||
}
|
||||
dependencySet(group: 'com.sun.jersey.contribs', version: jerseyVersion) {
|
||||
entry 'jersey-spring'
|
||||
entry 'jersey-multipart'
|
||||
}
|
||||
dependencySet(group: 'org.apache.poi', version: '3.9') {
|
||||
entry 'poi'
|
||||
entry 'poi-ooxml'
|
||||
entry 'poi-ooxml-schemas'
|
||||
}
|
||||
dependencySet(group: 'org.apache.tomcat.embed', version: '7.0.94') {
|
||||
entry 'tomcat-embed-core'
|
||||
entry 'tomcat-embed-jasper'
|
||||
entry 'tomcat-embed-logging-log4j'
|
||||
}
|
||||
|
||||
}
|
||||
dependencySet(group: 'com.sun.jersey', version: jerseyVersion) {
|
||||
entry 'jersey-core'
|
||||
entry 'jersey-servlet'
|
||||
entry 'jersey-server'
|
||||
entry 'jersey-json'
|
||||
}
|
||||
dependencySet(group: 'com.sun.jersey.contribs', version: jerseyVersion) {
|
||||
entry 'jersey-spring'
|
||||
entry 'jersey-multipart'
|
||||
}
|
||||
dependencySet(group: 'org.apache.poi', version: '3.9') {
|
||||
entry 'poi'
|
||||
entry 'poi-ooxml'
|
||||
entry 'poi-ooxml-schemas'
|
||||
}
|
||||
dependencySet(group: 'org.apache.tomcat.embed', version: '7.0.94') {
|
||||
entry 'tomcat-embed-core'
|
||||
entry 'tomcat-embed-jasper'
|
||||
entry 'tomcat-embed-logging-log4j'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* define the valid syntax level for source files */
|
||||
@@ -175,7 +175,11 @@ jacocoTestReport{
|
||||
}
|
||||
|
||||
rat {
|
||||
xmlOutput = false
|
||||
htmlOutput = false
|
||||
plainOutput = true
|
||||
verbose = false
|
||||
// inputDir = './..'
|
||||
reportDir = new File(buildDir,'reports/rat')
|
||||
excludes = [
|
||||
'**/licenses/**',
|
||||
@@ -250,6 +254,9 @@ rat {
|
||||
'**/assets/uglify.js',
|
||||
//Ignore out folder
|
||||
'**/out/**',
|
||||
|
||||
// Git build info
|
||||
"**/git.properties",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -457,20 +464,20 @@ sourceSets.test.output.resourcesDir = sourceSets.test.java.outputDir
|
||||
|
||||
/* Exclude maria db and embedded tomcat related files for non dev builds */
|
||||
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
exclude '**/Server*'
|
||||
exclude '**/MariaDB4j*'
|
||||
exclude '**/EmbeddedTomcatWithSSLConfiguration.java'
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
exclude '**/Server*'
|
||||
exclude '**/MariaDB4j*'
|
||||
exclude '**/EmbeddedTomcatWithSSLConfiguration.java'
|
||||
}
|
||||
}
|
||||
test {
|
||||
java {
|
||||
exclude '**/core/boot/tests/**'
|
||||
}
|
||||
}
|
||||
}
|
||||
test {
|
||||
java {
|
||||
exclude '**/core/boot/tests/**'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@@ -575,14 +582,11 @@ tasks.withType(SpotBugsTask) {
|
||||
}
|
||||
|
||||
gitProperties {
|
||||
gitPropertiesResourceDir = "${project.rootDir}/src/main/resources"
|
||||
gitPropertiesResourceDir = "$buildDir/classes/java/main/resources"
|
||||
dateFormat = "yyyy-MM-dd'T'HH:mmZ"
|
||||
dateFormatTimeZone = "GMT"
|
||||
failOnNoGitDirectory = false
|
||||
}
|
||||
|
||||
// make sure the generateGitProperties task always executes (even when git.properties is not changed)
|
||||
generateGitProperties.outputs.upToDateWhen { false }
|
||||
|
||||
clean {
|
||||
delete "${project.rootDir}/src/main/resources/git.properties"
|
||||
}
|
||||
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* 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.fineract.integrationtests;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import io.restassured.RestAssured;
|
||||
import io.restassured.http.ContentType;
|
||||
import io.restassured.response.Response;
|
||||
import java.util.Map;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ActuatorIntegrationTest {
|
||||
|
||||
private final static String INFO_URL = "/fineract-provider/actuator/info";
|
||||
|
||||
@Test
|
||||
public void testActuatorGitBuildInfo() {
|
||||
Response response = RestAssured.given()
|
||||
.headers("Content-Type", ContentType.JSON, "Accept", ContentType.JSON).when()
|
||||
.get(INFO_URL).then().contentType(ContentType.JSON).extract().response();
|
||||
|
||||
Map<String, String> gitBuildInfo = response.jsonPath().getMap("git");
|
||||
|
||||
assertTrue(gitBuildInfo.containsKey("branch"));
|
||||
assertTrue(gitBuildInfo.containsKey("remote"));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user