diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac8b0065..06a06fdd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ image: maven:3.6.1-jdk-8 variables: - MAVEN_CLI_OPTS: "--show-version" + MAVEN_CLI_OPTS: "--show-version -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd@HH:mm:ss,SSS" MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Djava.awt.headless=true" cache: @@ -12,59 +12,106 @@ cache: include: - template: Code-Quality.gitlab-ci.yml - - + + stages: - build - test - package - deploy - + + build: stage: build script: - - mvn $MAVEN_CLI_OPTS clean compile install -f system/platform-core - - mvn $MAVEN_CLI_OPTS clean compile install -f system/rest-spring - - mvn $MAVEN_CLI_OPTS clean compile install -f connectors/hazelcast/hazelcast-connector - - mvn $MAVEN_CLI_OPTS clean compile install -f connectors/kafka/kafka-connector + - mvn $MAVEN_CLI_OPTS clean compile install -f system/parent + - mvn $MAVEN_CLI_OPTS clean compile install cache: key: $CI_PIPELINE_IID policy: push # this is the only job that needs to publish to the cache, therefore it is overriding the policy paths: - $CI_PROJECT_DIR/.m2/repository - -test_and_coverage: + + +############################ +# TEST + +.test_and_coverage: stage: test - script: - - mvn $MAVEN_CLI_OPTS test -f system/platform-core - - ls -la system/platform-core/target/surefire-reports - - cat system/platform-core/target/site/jacoco/index.html - - mv system/platform-core/target/site/jacoco jacoco + needs: ['build'] coverage: '/Total.*?([0-9]{1,3})%/' artifacts: reports: junit: - - system/platform-core/target/surefire-reports/TEST-*.xml + - $CI_PROJECT_DIR/**/target/surefire-reports/TEST-*.xml paths: - jacoco expire_in: 30 days - -javadoc: + +# just test platform core +# TODO: is it possible to generate coverage report across all modules? +# The current coverage report is only for the platform core submodule +platform_test: + extends: .test_and_coverage + script: + - mvn $MAVEN_CLI_OPTS test -f system/platform-core + - ls -la system/platform-core/target/surefire-reports + - cat system/platform-core/target/site/jacoco/index.html + - mv system/platform-core/target/site/jacoco jacoco + + +# test all modules +submodules_test: + extends: .test_and_coverage + script: + - mvn $MAVEN_CLI_OPTS test + + +############################ +# Publish + +.publish: + stage: deploy + dependencies: ['build', 'submodules_test'] + needs: ['build', 'submodules_test'] + +snapshot: + extends: .publish + script: + - echo "Publish snapshot" + - mvn $MAVEN_CLI_OPTS deploy -s .gitlab_maven_settings.xml -DskipTests + +release: + extends: .publish + script: + - echo "Publish release" + - mvn $MAVEN_CLI_OPTS deploy -s .gitlab_maven_settings.xml -DskipTests -Drevision=$CI_COMMIT_TAG + only: + - tags + +############################ +# JavaDoc + +javadoc: stage: package - script: + dependencies: + - build + needs: ['build'] + script: - mvn $MAVEN_CLI_OPTS javadoc:javadoc -f system/platform-core - mv system/platform-core/target/site/apidocs apidocs artifacts: paths: - apidocs expire_in: 30 days - + pages: stage: deploy dependencies: - - test_and_coverage + - platform_test - javadoc + needs: ['platform_test', 'javadoc'] script: - mkdir -p public/coverage public/docs - mv jacoco/* public/coverage @@ -73,4 +120,3 @@ pages: paths: - public expire_in: 90 days - diff --git a/.gitlab_maven_settings.xml b/.gitlab_maven_settings.xml new file mode 100644 index 00000000..5465fb8f --- /dev/null +++ b/.gitlab_maven_settings.xml @@ -0,0 +1,18 @@ + + + + + + gitlab-maven + + + + Job-Token + ${env.CI_JOB_TOKEN} + + + + + + diff --git a/connectors/event-node/pom.xml b/connectors/event-node/pom.xml index 6ef62d8d..91ebc021 100644 --- a/connectors/event-node/pom.xml +++ b/connectors/event-node/pom.xml @@ -7,17 +7,18 @@ event-node jar - 1.12.65 + ${revision} Event Node - Platform-in-a-box - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/connectors/hazelcast/hazelcast-connector/pom.xml b/connectors/hazelcast/hazelcast-connector/pom.xml index 6edb1a16..3e845b56 100644 --- a/connectors/hazelcast/hazelcast-connector/pom.xml +++ b/connectors/hazelcast/hazelcast-connector/pom.xml @@ -7,17 +7,18 @@ hazelcast-connector jar - 1.12.65 + ${revision} Cloud connector for Hazelcast cluster - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda platform-core - 1.12.65 + 1.12-SNAPSHOT diff --git a/connectors/hazelcast/hazelcast-presence/pom.xml b/connectors/hazelcast/hazelcast-presence/pom.xml index 0c1d226f..ee020956 100644 --- a/connectors/hazelcast/hazelcast-presence/pom.xml +++ b/connectors/hazelcast/hazelcast-presence/pom.xml @@ -5,17 +5,18 @@ org.platformlambda hazelcast-presence jar - 1.12.65 + ${revision} hazelcast-presence-monitor - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -37,13 +38,13 @@ org.platformlambda hazelcast-connector - 1.12.65 + 1.12-SNAPSHOT org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/connectors/kafka/kafka-connector/pom.xml b/connectors/kafka/kafka-connector/pom.xml index 54f1a83b..6c66bb7e 100644 --- a/connectors/kafka/kafka-connector/pom.xml +++ b/connectors/kafka/kafka-connector/pom.xml @@ -7,17 +7,18 @@ kafka-connector jar - 1.12.65 + ${revision} Cloud connector for Kafka cluster - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda platform-core - 1.12.65 + 1.12-SNAPSHOT diff --git a/connectors/kafka/kafka-presence/pom.xml b/connectors/kafka/kafka-presence/pom.xml index aea4429a..7ef92f3a 100644 --- a/connectors/kafka/kafka-presence/pom.xml +++ b/connectors/kafka/kafka-presence/pom.xml @@ -5,17 +5,18 @@ org.platformlambda kafka-presence jar - 1.12.65 + ${revision} kafka-presence-monitor - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -37,13 +38,13 @@ org.platformlambda kafka-connector - 1.12.65 + 1.12-SNAPSHOT org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/connectors/kafka/kafka-standalone/pom.xml b/connectors/kafka/kafka-standalone/pom.xml index c0d41398..de5ef089 100644 --- a/connectors/kafka/kafka-standalone/pom.xml +++ b/connectors/kafka/kafka-standalone/pom.xml @@ -7,17 +7,18 @@ kafka-standalone jar - 1.12.65 + ${revision} Standalone kafka system for development - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda platform-core - 1.12.65 + 1.12-SNAPSHOT diff --git a/examples/lambda-example/pom.xml b/examples/lambda-example/pom.xml index 49d03195..eff4ac4e 100644 --- a/examples/lambda-example/pom.xml +++ b/examples/lambda-example/pom.xml @@ -7,17 +7,18 @@ lambda-example jar - 1.12.65 + ${revision} Example for simple microservices executable - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,25 +40,25 @@ org.platformlambda platform-core - 1.12.65 + 1.12-SNAPSHOT org.platformlambda kafka-connector - 1.12.65 + 1.12-SNAPSHOT org.platformlambda hazelcast-connector - 1.12.65 + 1.12-SNAPSHOT diff --git a/examples/rest-example/pom.xml b/examples/rest-example/pom.xml index 23701570..3d684df5 100644 --- a/examples/rest-example/pom.xml +++ b/examples/rest-example/pom.xml @@ -5,18 +5,19 @@ com.accenture rest-example - 1.12.65 + ${revision} jar REST example application - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -38,25 +39,25 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT org.platformlambda kafka-connector - 1.12.65 + 1.12-SNAPSHOT org.platformlambda hazelcast-connector - 1.12.65 + 1.12-SNAPSHOT diff --git a/extensions/api-playground/pom.xml b/extensions/api-playground/pom.xml index edd9c6c1..7a314f01 100644 --- a/extensions/api-playground/pom.xml +++ b/extensions/api-playground/pom.xml @@ -7,17 +7,18 @@ api-playground jar - 1.12.65 + ${revision} API playground using OpenAPI - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/extensions/distributed-tracer/pom.xml b/extensions/distributed-tracer/pom.xml index c9d1eaa2..4a9a8b3d 100644 --- a/extensions/distributed-tracer/pom.xml +++ b/extensions/distributed-tracer/pom.xml @@ -7,17 +7,18 @@ distributed-tracer jar - 1.12.65 + ${revision} Distributed trace processor example - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/extensions/rest-automation-app/pom.xml b/extensions/rest-automation-app/pom.xml index a504faa5..e8712397 100644 --- a/extensions/rest-automation-app/pom.xml +++ b/extensions/rest-automation-app/pom.xml @@ -7,17 +7,18 @@ rest-automation-app jar - 1.12.65 + ${revision} REST automation application - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,13 +40,13 @@ org.platformlambda rest-automation - 1.12.65 + 1.12-SNAPSHOT org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/extensions/rest-automation-lib/pom.xml b/extensions/rest-automation-lib/pom.xml index 49434510..b54bc2ce 100644 --- a/extensions/rest-automation-lib/pom.xml +++ b/extensions/rest-automation-lib/pom.xml @@ -7,17 +7,18 @@ rest-automation jar - 1.12.65 + ${revision} REST automation library - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -40,7 +41,7 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT provided @@ -54,13 +55,13 @@ org.platformlambda kafka-connector - 1.12.65 + 1.12-SNAPSHOT provided org.platformlambda hazelcast-connector - 1.12.65 + 1.12-SNAPSHOT provided diff --git a/extensions/simple-scheduler/pom.xml b/extensions/simple-scheduler/pom.xml index 845e0a47..12882901 100644 --- a/extensions/simple-scheduler/pom.xml +++ b/extensions/simple-scheduler/pom.xml @@ -7,17 +7,18 @@ simple-scheduler jar - 1.12.65 + ${revision} Simple Scheduler - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -28,10 +29,6 @@ central https://repo1.maven.org/maven2/ - - - - @@ -39,7 +36,7 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/extensions/websocket-notification/pom.xml b/extensions/websocket-notification/pom.xml index 98c550ff..3176b2fa 100644 --- a/extensions/websocket-notification/pom.xml +++ b/extensions/websocket-notification/pom.xml @@ -7,17 +7,18 @@ websocket-notification jar - 1.12.65 + ${revision} WebSocket notification example - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -39,7 +40,7 @@ org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT diff --git a/language-packs/language-connector/pom.xml b/language-packs/language-connector/pom.xml index 0edd67c7..966b9966 100644 --- a/language-packs/language-connector/pom.xml +++ b/language-packs/language-connector/pom.xml @@ -7,7 +7,7 @@ language-connector jar - 1.12.65 + ${revision} Language Connector for Python and others @@ -18,6 +18,7 @@ + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -32,32 +33,47 @@ + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + org.platformlambda rest-spring - 1.12.65 + 1.12-SNAPSHOT org.platformlambda kafka-connector - 1.12.65 + 1.12-SNAPSHOT org.platformlambda hazelcast-connector - 1.12.65 + 1.12-SNAPSHOT diff --git a/pom.xml b/pom.xml index bc9ac52a..78bb86bf 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,16 @@ com.accenture.mercury parent-mercury pom - 1.0.0 + + + + ${revision} + + 1.12-SNAPSHOT + + Parent Mercury @@ -29,5 +38,16 @@ examples/lambda-example examples/rest-example - + + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + diff --git a/system/parent/pom.xml b/system/parent/pom.xml new file mode 100644 index 00000000..106db189 --- /dev/null +++ b/system/parent/pom.xml @@ -0,0 +1,45 @@ + + + 4.0.0 + + org.platformlambda + mercury-parent + ${revision} + pom + + + 1.12-SNAPSHOT + UTF-8 + + + + org.springframework.boot + spring-boot-starter-parent + 2.3.3.RELEASE + + + + + + central + https://repo1.maven.org/maven2/ + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + + diff --git a/system/platform-core/pom.xml b/system/platform-core/pom.xml index 32f4d67b..aa4161e4 100644 --- a/system/platform-core/pom.xml +++ b/system/platform-core/pom.xml @@ -7,17 +7,18 @@ platform-core jar - 1.12.65 + ${revision} Mercury core library + 1.12-SNAPSHOT UTF-8 - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT @@ -30,8 +31,23 @@ + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + gitlab-maven + ${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven + + + diff --git a/system/rest-spring/pom.xml b/system/rest-spring/pom.xml index 33896e8d..cf8bf2d2 100644 --- a/system/rest-spring/pom.xml +++ b/system/rest-spring/pom.xml @@ -6,20 +6,21 @@ org.platformlambda rest-spring - 1.12.65 + ${revision} jar rest-spring Preconfigured spring boot with proper serializers, exception handlers and loaders - org.springframework.boot - spring-boot-starter-parent - 2.3.3.RELEASE + org.platformlambda + mercury-parent + 1.12-SNAPSHOT + 1.12-SNAPSHOT UTF-8 4.0.1 1.8 @@ -30,10 +31,6 @@ central https://repo1.maven.org/maven2/ - - - - @@ -103,7 +100,7 @@ org.platformlambda platform-core - 1.12.65 + 1.12-SNAPSHOT