Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

NB! This is still draft with work in progress!

Fineract-CN projects depend on each other. The simplest option is to build all projects locally so artifacts are published to local maven repository and available from there.

...

If travis detects that the changes were pushed to "develop" branch and build doesn't fail then it uploads the new snapshot artifacts to the public repository. You can pick them up the same way as artifacts deployed to local Maven:

dependencies {
compile(
[group: 'org.apache.fineract.cn', name: 'reponame', version: '0.1.0-BUILD-SNAPSHOT']
)
)

Changes pushed/merged to other branches (not "develop")

Travis builds and publishes the snapshots out of all branches but for branches not named "develop" it overwrites the version of the artifact (defined in build.gradle) with "branchname-SNAPSHOT". If you want to point some other project to branch "myfeaturebranch" then you need to use:

dependencies {
compile(
[group: 'org.apache.fineract.cn', name: 'reponame', version: 'myfeaturebranch-SNAPSHOT']
)
)

Handling pull requests

Travis also builds all pull requests but for security reasons it doesn't upload any artifacts built from pull requests.

...

If a release is tagged in git then travis also github then Travis-CI builds that but as a release and uploads it under different repoKey and - release artifacts are available at httpsat https://mifos.jfrog.io/mifos/libs-release release

Travis and Artifactory setup

...

JFrog Artifactory configuration

  • Common Maven repository configuration is used - this means:
    • Snapshots are uploaded to "libs-snaptshots-local" and releases to "libs-release-local"
    • There are two virutal repositories libs-snapshots
    that
    • (includes libs-snapshots-
    loca
    • local) and libs-release
    that
    • (includes libs-release-local)
  • Remote repositories are deleted (as we don't want the reposiotry to be a proxy for Maven CentralJCentral)
  • A user "travis-ci" has been configured who has rights to upload artifacts
  • Anonymous access has been enabled for anyone to download the artifacts