This is an automated email from the ASF dual-hosted git repository. awasum pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract-cn-permitted-feign-client.git
commit 3804b7815f1dcfc1366d6b81ef5230fb015c5f43 Author: Juhan Aasaru <[email protected]> AuthorDate: Thu Apr 25 14:01:06 2019 +0300 FINCN-148 build with travis-ci.com and upload artifacts to Artifactory --- .travis.yml | 30 ++++++++++++++++++ README.md | 2 +- another-for-test/build.gradle | 5 +-- api/build.gradle | 3 +- build.gradle | 9 ++++++ component-test/build.gradle | 1 + library/build.gradle | 3 +- shared.gradle | 17 +++++++++++ travis.sh | 71 +++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 136 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e9ea79e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,30 @@ +# +# 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. +# +language: java +sudo: false +jdk: +- openjdk8 +install: true +script: "./travis.sh" +env: + global: + - BUILD_SNAPSHOTS_BRANCH=develop + - ARTIFACTORY_URL=https://mifos.jfrog.io/mifos + - ARTIFACTORY_USER=travis-ci + - secure: "VhvwetVLfBmMzlEAHuJZ8Uw5iNWoso5RMQw3/E7fHMa+brUd3ANR5oeXhVO/eUs3U9hKZZWtRYAhZbsNXLHv+oE8lO91re3WJLvJB1jZOXu4YP8fcOd3vPBXR3znTDHhZ9suzLFDgKDJPXb1ybNZuDXWwUggXmAPdyw2QTt7Wfh1kcfpP0P12sg2ONuEb4ns2fNQUuvE355SU9ZAyQSKnotgYJ0JazlV912CMxfhT4ir2gS1ufEnRjgKEwPfUrDFJs3N8ydHSo4KU7j5sdlAjylZMwOmM1tCqAyRImIycErxLpCD3Df97gHKc+aim832Ue0kXijrgBRBX30SFiLNUvpo18wMw6dsBuA03ht6n9b13TEgJKtqdSlGvQ+gS31Nz9yWWK0HoVY+3+kythha1qqF1CnsKPagOt4C+2osOEZ+pdWJWuM8+T/Add0qdQeNzcY3Dw5FgYSEMJyMxWvDrGSKJxb6a [...] diff --git a/README.md b/README.md index ef1e068..79651ac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Apache Fineract CN Permitted Feign Client Library +# Apache Fineract CN Permitted Feign Client Library [](https://travis-ci.com/apache/fineract-cn-permitted-feign-client) This project provides secured access to other services via Feign. For this it uses anubis and identity to provide refresh and access tokens transparently. diff --git a/another-for-test/build.gradle b/another-for-test/build.gradle index 844d116..3c983bb 100644 --- a/another-for-test/build.gradle +++ b/another-for-test/build.gradle @@ -32,6 +32,7 @@ buildscript { plugins { id 'com.github.hierynomus.license' version '0.13.1' id("org.nosphere.apache.rat") version "0.3.1" + id "com.jfrog.artifactory" version "4.9.5" } apply from: '../shared.gradle' @@ -66,14 +67,14 @@ publishing { from components.java groupId project.group artifactId project.name - version project.version + version project.findProperty('externalVersion') ?: project.version } bootService(MavenPublication) { // "boot" jar artifact ("$buildDir/libs/$project.name-$version-boot.jar") groupId project.group artifactId ("service-boot") - version project.version + version project.findProperty('externalVersion') ?: project.version } } } diff --git a/api/build.gradle b/api/build.gradle index 0c393b6..1a034a9 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -29,6 +29,7 @@ buildscript { plugins { id 'com.github.hierynomus.license' version '0.13.1' id("org.nosphere.apache.rat") version "0.3.1" + id "com.jfrog.artifactory" version "4.9.5" } @@ -56,7 +57,7 @@ publishing { from components.java groupId project.group artifactId project.name - version project.version + version project.findProperty('externalVersion') ?: project.version } } } diff --git a/build.gradle b/build.gradle index 4b0f9a2..4873b74 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,15 @@ task publishToMavenLocal { dependsOn publishComponentTestToMavenLocal } +task artifactoryPublish { + group 'all' + dependsOn publishToMavenLocal + dependsOn gradle.includedBuild('api').task(':artifactoryPublish') + dependsOn gradle.includedBuild('library').task(':artifactoryPublish') + dependsOn gradle.includedBuild('another-for-test').task(':artifactoryPublish') + dependsOn gradle.includedBuild('component-test').task(':artifactoryPublish') +} + task licenseFormat { group 'all' dependsOn gradle.includedBuild('api').task(':licenseFormat') diff --git a/component-test/build.gradle b/component-test/build.gradle index 84ebe43..01f5572 100644 --- a/component-test/build.gradle +++ b/component-test/build.gradle @@ -32,6 +32,7 @@ buildscript { plugins { id 'com.github.hierynomus.license' version '0.13.1' id("org.nosphere.apache.rat") version "0.3.1" + id "com.jfrog.artifactory" version "4.9.5" } apply from: '../shared.gradle' diff --git a/library/build.gradle b/library/build.gradle index b64e91e..b2af84a 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -28,6 +28,7 @@ buildscript { plugins { id 'com.github.hierynomus.license' version '0.13.1' id("org.nosphere.apache.rat") version "0.3.1" + id "com.jfrog.artifactory" version "4.9.5" } apply from: '../shared.gradle' @@ -68,7 +69,7 @@ publishing { from components.java groupId project.group artifactId project.name - version project.version + version project.findProperty('externalVersion') ?: project.version } } } diff --git a/shared.gradle b/shared.gradle index 912a6fb..31f4c3b 100644 --- a/shared.gradle +++ b/shared.gradle @@ -45,6 +45,7 @@ tasks.withType(JavaCompile) { repositories { jcenter() mavenLocal() + maven { url 'https://mifos.jfrog.io/mifos/libs-snapshot/' } } configurations { @@ -80,6 +81,22 @@ jar { from sourceSets.main.allSource } +artifactory { + contextUrl = System.getenv("ARTIFACTORY_URL") + publish { + repository { + repoKey = project.findProperty('artifactoryRepoKey') + username = System.getenv("ARTIFACTORY_USER") + password = System.getenv("ARTIFACTORY_PASSWORD") + } + + defaults { + publications ('apiPublication', 'libraryPublication', 'service', 'bootService') + } + } +} +artifactoryPublish.dependsOn('clean','publishToMavenLocal') + license { header rootProject.file('../HEADER') strictCheck true diff --git a/travis.sh b/travis.sh new file mode 100755 index 0000000..03a75ee --- /dev/null +++ b/travis.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# +# 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. +# + +# Documentation: https://cwiki.apache.org/confluence/display/FINERACT/Fineract-CN+Artifactory + +#Exit immediately if a command exits with a non-zero status. +set -e +EXIT_STATUS=0 + +# Builds and Publishes a SNAPSHOT +function build_snapshot() { + echo -e "Building and publishing a snapshot out of branch [$TRAVIS_BRANCH]" + ./gradlew -PartifactoryRepoKey=libs-snapshot-local -DbuildInfo.build.number=${TRAVIS_COMMIT::7} artifactoryPublish --stacktrace || EXIT_STATUS=$? +} + +# Builds a Pull Request +function build_pullrequest() { + echo -e "Building pull request #$TRAVIS_PULL_REQUEST of branch [$TRAVIS_BRANCH]. Won't publish anything to Artifactory." + ./gradlew publishToMavenLocal rat || EXIT_STATUS=$? +} + +# For other branches we need to add branch name as prefix +function build_otherbranch() { + echo -e "Building a snapshot out of branch [$TRAVIS_BRANCH] and publishing it with prefix '${TRAVIS_BRANCH}-SNAPSHOT'" + ./gradlew -PartifactoryRepoKey=libs-snapshot-local -DbuildInfo.build.number=${TRAVIS_COMMIT::7} -PexternalVersion=${TRAVIS_BRANCH}-SNAPSHOT artifactoryPublish --stacktrace || EXIT_STATUS=$? +} + +# Builds and Publishes a Tag +function build_tag() { + echo -e "Building tag [$TRAVIS_TAG] and publishing it as a release" + ./gradlew -PartifactoryRepoKey=libs-release-local -PexternalVersion=$TRAVIS_TAG artifactoryPublish --stacktrace || EXIT_STATUS=$? + +} + +echo -e "TRAVIS_BRANCH=$TRAVIS_BRANCH" +echo -e "TRAVIS_TAG=$TRAVIS_TAG" +echo -e "TRAVIS_COMMIT=${TRAVIS_COMMIT::7}" +echo -e "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST" + +# Build Logic +if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + build_pullrequest +elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" != "$BUILD_SNAPSHOTS_BRANCH" ] && [ "$TRAVIS_TAG" == "" ] ; then + build_otherbranch +elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "$BUILD_SNAPSHOTS_BRANCH" ] && [ "$TRAVIS_TAG" == "" ] ; then + build_snapshot +elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then + build_tag +else + echo -e "WARN: Unexpected env variable values => Branch [$TRAVIS_BRANCH], Tag [$TRAVIS_TAG], Pull Request [#$TRAVIS_PULL_REQUEST]" + ./gradlew clean build +fi + +exit ${EXIT_STATUS}
