Merge pull request #404 from davidB/exp_bintray2
build: upload on bintray from travis when a git tag is set
This commit is contained in:
commit
5935db5261
@ -25,7 +25,6 @@ install:
|
|||||||
script:
|
script:
|
||||||
- ./gradlew check
|
- ./gradlew check
|
||||||
- ./gradlew createZipDistribution
|
- ./gradlew createZipDistribution
|
||||||
- "[ $TRAVIS_BRANCH == 'master' ] && [ $TRAVIS_PULL_REQUEST == 'false' ] && ./gradlew uploadArchives || :"
|
|
||||||
|
|
||||||
before_deploy:
|
before_deploy:
|
||||||
- export RELEASE_DIST=$(ls build/distributions/*.zip)
|
- export RELEASE_DIST=$(ls build/distributions/*.zip)
|
||||||
@ -54,3 +53,7 @@ before_install:
|
|||||||
# wget http://dl.google.com/android/ndk/android-ndk-r10c-linux-x86_64.bin -O ndk.bin
|
# wget http://dl.google.com/android/ndk/android-ndk-r10c-linux-x86_64.bin -O ndk.bin
|
||||||
# 7z x ndk.bin -y > /dev/null
|
# 7z x ndk.bin -y > /dev/null
|
||||||
# export ANDROID_NDK=`pwd`/android-ndk-r10c
|
# export ANDROID_NDK=`pwd`/android-ndk-r10c
|
||||||
|
|
||||||
|
after_success:
|
||||||
|
- '[ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew uploadArchives || :'
|
||||||
|
- '[ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew bintrayUpload || :'
|
||||||
|
29
bintray.gradle
Normal file
29
bintray.gradle
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// This file is to be applied to some subproject.
|
||||||
|
//
|
||||||
|
|
||||||
|
apply plugin: 'com.jfrog.bintray'
|
||||||
|
|
||||||
|
bintray {
|
||||||
|
user = bintray_user
|
||||||
|
key = bintray_api_key
|
||||||
|
configurations = ['archives']
|
||||||
|
dryRun = false
|
||||||
|
pkg {
|
||||||
|
repo = 'org.jmonkeyengine'
|
||||||
|
userOrg = 'jmonkeyengine'
|
||||||
|
name = project.name
|
||||||
|
desc = POM_DESCRIPTION
|
||||||
|
websiteUrl = POM_URL
|
||||||
|
licenses = ['BSD New']
|
||||||
|
vcsUrl = POM_SCM_URL
|
||||||
|
labels = ['jmonkeyengine']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bintrayUpload.dependsOn(writeFullPom)
|
||||||
|
|
||||||
|
bintrayUpload.onlyIf {
|
||||||
|
(bintray_api_key.length() > 0) &&
|
||||||
|
!(version ==~ /.*SNAPSHOT/)
|
||||||
|
}
|
@ -2,10 +2,11 @@ import org.gradle.api.artifacts.*
|
|||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:1.1.0'
|
classpath 'com.android.tools.build:gradle:1.1.0'
|
||||||
|
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -17,6 +18,9 @@ apply from: file('upload.gradle')
|
|||||||
subprojects {
|
subprojects {
|
||||||
if(!project.name.equals('jme3-android-examples')) {
|
if(!project.name.equals('jme3-android-examples')) {
|
||||||
apply from: rootProject.file('common.gradle')
|
apply from: rootProject.file('common.gradle')
|
||||||
|
if (!['jme3-testdata', 'sdk'].contains(project.name)) {
|
||||||
|
apply from: rootProject.file('bintray.gradle')
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
apply from: rootProject.file('common-android-app.gradle')
|
apply from: rootProject.file('common-android-app.gradle')
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'maven'
|
apply plugin: 'maven'
|
||||||
|
|
||||||
group = 'com.jme3'
|
group = 'org.jmonkeyengine'
|
||||||
version = jmePomVersion
|
version = jmePomVersion
|
||||||
|
|
||||||
sourceCompatibility = '1.6'
|
sourceCompatibility = '1.6'
|
||||||
@ -61,12 +61,53 @@ task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from
|
|||||||
from javadoc.destinationDir
|
from javadoc.destinationDir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def pomConfig = {
|
||||||
|
name POM_NAME
|
||||||
|
description POM_DESCRIPTION
|
||||||
|
url POM_URL
|
||||||
|
inceptionYear '2016'
|
||||||
|
scm {
|
||||||
|
url POM_SCM_URL
|
||||||
|
connection POM_SCM_CONNECTION
|
||||||
|
developerConnection POM_SCM_DEVELOPER_CONNECTION
|
||||||
|
}
|
||||||
|
licenses {
|
||||||
|
license {
|
||||||
|
name POM_LICENSE_NAME
|
||||||
|
url POM_LICENSE_URL
|
||||||
|
distribution POM_LICENSE_DISTRIBUTION
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// from http://hub.jmonkeyengine.org/introduction/team/
|
||||||
|
developers {
|
||||||
|
developer {
|
||||||
|
name 'jMonkeyEngine Team'
|
||||||
|
id 'jMonkeyEngine'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// workaround to be able to use same custom pom with 'maven' and 'bintray' plugin
|
||||||
|
task writeFullPom {
|
||||||
|
ext.pomFile = "$mavenPomDir/${project.name}-${project.version}.pom"
|
||||||
|
outputs.file pomFile
|
||||||
|
doLast {
|
||||||
|
pom {
|
||||||
|
project pomConfig
|
||||||
|
}.writeTo(pomFile)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assemble.dependsOn(writeFullPom)
|
||||||
|
install.dependsOn(writeFullPom)
|
||||||
|
uploadArchives.dependsOn(writeFullPom)
|
||||||
|
|
||||||
artifacts {
|
artifacts {
|
||||||
archives jar
|
archives jar
|
||||||
archives sourcesJar
|
archives sourcesJar
|
||||||
if(buildJavaDoc == "true"){
|
if(buildJavaDoc == "true"){
|
||||||
archives javadocJar
|
archives javadocJar
|
||||||
}
|
}
|
||||||
|
archives writeFullPom.outputs.files[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
uploadArchives {
|
uploadArchives {
|
||||||
@ -80,23 +121,7 @@ uploadArchives {
|
|||||||
authentication(userName: "www-updater", privateKey: "private/www-updater.key")
|
authentication(userName: "www-updater", privateKey: "private/www-updater.key")
|
||||||
}
|
}
|
||||||
|
|
||||||
pom.project {
|
pom.project pomConfig
|
||||||
name POM_NAME
|
|
||||||
description POM_DESCRIPTION
|
|
||||||
url POM_URL
|
|
||||||
scm {
|
|
||||||
url POM_SCM_URL
|
|
||||||
connection POM_SCM_CONNECTION
|
|
||||||
developerConnection POM_SCM_DEVELOPER_CONNECTION
|
|
||||||
}
|
|
||||||
licenses {
|
|
||||||
license {
|
|
||||||
name POM_LICENSE_NAME
|
|
||||||
url POM_LICENSE_URL
|
|
||||||
distribution POM_LICENSE_DISTRIBUTION
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,3 +37,7 @@ POM_SCM_DEVELOPER_CONNECTION=scm:git:git@github.com:jMonkeyEngine/jmonkeyengine.
|
|||||||
POM_LICENSE_NAME=New BSD (3-clause) License
|
POM_LICENSE_NAME=New BSD (3-clause) License
|
||||||
POM_LICENSE_URL=http://opensource.org/licenses/BSD-3-Clause
|
POM_LICENSE_URL=http://opensource.org/licenses/BSD-3-Clause
|
||||||
POM_LICENSE_DISTRIBUTION=repo
|
POM_LICENSE_DISTRIBUTION=repo
|
||||||
|
|
||||||
|
# Bintray settings to override in $HOME/.gradle/gradle.properties or ENV or commandline
|
||||||
|
bintray_user=
|
||||||
|
bintray_api_key=
|
||||||
|
@ -109,6 +109,7 @@ task createBaseXml(dependsOn: configurations.corelibs) <<{
|
|||||||
dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
|
dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
|
||||||
if(artifact.classifier == "sources"){
|
if(artifact.classifier == "sources"){
|
||||||
} else if(artifact.classifier == "javadoc"){
|
} else if(artifact.classifier == "javadoc"){
|
||||||
|
} else if(artifact.file.name.endsWith('.pom')) {
|
||||||
} else{
|
} else{
|
||||||
if(!jmeJarFiles.contains(artifact.file)){
|
if(!jmeJarFiles.contains(artifact.file)){
|
||||||
jmeJarFiles.add(artifact.file)
|
jmeJarFiles.add(artifact.file)
|
||||||
|
110
version.gradle
110
version.gradle
@ -3,27 +3,31 @@
|
|||||||
=====================
|
=====================
|
||||||
|
|
||||||
Nightly Build Snapshot
|
Nightly Build Snapshot
|
||||||
|
* git tag:
|
||||||
* Full Version: 3.1-5124
|
* Full Version: 3.1-5124
|
||||||
* POM Version: 3.1.0-SNAPSHOT
|
* POM Version: 3.1.0-SNAPSHOT
|
||||||
* NBM Revision: 5124
|
* NBM Revision: 5124
|
||||||
* NBM UC Suffix: nightly/3.1/plugins
|
* NBM UC Suffix: nightly/3.1/plugins
|
||||||
|
|
||||||
Nightly Build Snapshot (PBRIsComing branch)
|
Nightly Build Snapshot (PBRIsComing branch)
|
||||||
|
* git tag:
|
||||||
* Full Version: 3.1-PBRIsComing-5124
|
* Full Version: 3.1-PBRIsComing-5124
|
||||||
* POM Version: 3.1.0-PBRIsComing-SNAPSHOT
|
* POM Version: 3.1.0-PBRIsComing-SNAPSHOT
|
||||||
* NBM Revision: 5124
|
* NBM Revision: 5124
|
||||||
* NBM UC Suffix: PBRIsComing-nightly/3.1/plugins
|
* NBM UC Suffix: PBRIsComing-nightly/3.1/plugins
|
||||||
|
|
||||||
Alpha1 Release
|
Alpha1 Release
|
||||||
|
* git tag: v3.1.0-alpha1
|
||||||
* Full Version: 3.1-alpha1
|
* Full Version: 3.1-alpha1
|
||||||
* POM Version: 3.1.0-alpha1
|
* POM Version: 3.1.0-alpha1
|
||||||
* NBM Revision: 1
|
* NBM Revision: 0
|
||||||
* NBM UC Suffix: stable/3.1/plugins
|
* NBM UC Suffix: stable/3.1/plugins
|
||||||
|
|
||||||
Final Release
|
Final Release
|
||||||
|
* git tag: v3.1.0
|
||||||
* Full Version: 3.1
|
* Full Version: 3.1
|
||||||
* POM Version: 3.1.0
|
* POM Version: 3.1.0
|
||||||
* NBM Revision: 5
|
* NBM Revision: 0
|
||||||
* NBM UC Suffix: stable/3.1/plugins
|
* NBM UC Suffix: stable/3.1/plugins
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -52,57 +56,101 @@ ext {
|
|||||||
jmeNbmUcSuffix = "unknown"
|
jmeNbmUcSuffix = "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def getReleaseInfo(String tag) {
|
||||||
|
if (tag == null) {
|
||||||
|
// not a tagged commit
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!tag.startsWith("v")) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
tag = tag.substring(1)
|
||||||
|
|
||||||
|
String[] parts = tag.split("-");
|
||||||
|
String mainVersion;
|
||||||
|
boolean prerelease;
|
||||||
|
String releaseName = null;
|
||||||
|
|
||||||
|
if (parts.length == 2) {
|
||||||
|
// prerelease
|
||||||
|
prerelease = true;
|
||||||
|
mainVersion = parts[0];
|
||||||
|
releaseName = parts[1];
|
||||||
|
if (releaseName.size() == 0) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} else if (parts.length == 1) {
|
||||||
|
// final release
|
||||||
|
prerelease = false;
|
||||||
|
mainVersion = parts[0];
|
||||||
|
} else {
|
||||||
|
// error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mainVersion.size() == 0) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
parts = mainVersion.split("\\.");
|
||||||
|
if (parts.size() != 3) {
|
||||||
|
// syntax error
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String baseVersion = parts[0] + "." + parts[1];
|
||||||
|
|
||||||
|
return [
|
||||||
|
"tag" : tag,
|
||||||
|
"baseVersion" : baseVersion,
|
||||||
|
"mainVersion" : mainVersion,
|
||||||
|
"prerelease" : prerelease,
|
||||||
|
"releaseName" : releaseName,
|
||||||
|
"releaseSuffix": (prerelease ? "-${releaseName}": "")
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
task configureVersionInfo {
|
task configureVersionInfo {
|
||||||
try {
|
try {
|
||||||
def grgit = Grgit.open(project.file('.'))
|
def grgit = Grgit.open(project.file('.'))
|
||||||
jmeRevision = grgit.log(includes:['HEAD']).size()
|
def head = grgit.head()
|
||||||
jmeGitHash = grgit.head().id
|
jmeRevision = grgit.log(includes: [head]).size()
|
||||||
jmeShortGitHash = grgit.head().abbreviatedId
|
jmeGitHash = head.id
|
||||||
|
jmeShortGitHash = head.abbreviatedId
|
||||||
jmeBranchName = grgit.branch.current.name
|
jmeBranchName = grgit.branch.current.name
|
||||||
jmeGitTag = grgit.describe()
|
jmeGitTag = grgit.tag.list().find { it.commit == head } ?: System.env.TRAVIS_TAG
|
||||||
if (jmeGitTag == null) jmeGitTag = ""
|
|
||||||
|
|
||||||
|
def releaseInfo = getReleaseInfo(jmeGitTag)
|
||||||
|
if (releaseInfo != null) {
|
||||||
|
jmeFullVersion = "${releaseInfo.baseVersion}${releaseInfo.releaseSuffix}"
|
||||||
|
jmePomVersion = "${releaseInfo.mainVersion}${releaseInfo.releaseSuffix}"
|
||||||
|
jmeNbmRevision = "0"
|
||||||
|
jmeNbmUcSuffix = "stable/${releaseInfo.baseVersion}/plugins"
|
||||||
|
} else {
|
||||||
|
// SNAPSHOT
|
||||||
|
jmeFullVersion = jmeMainVersion
|
||||||
|
jmePomVersion = jmeVersion
|
||||||
if (System.env.TRAVIS_BRANCH != null) {
|
if (System.env.TRAVIS_BRANCH != null) {
|
||||||
jmeBranchName = System.env.TRAVIS_BRANCH
|
jmeBranchName = System.env.TRAVIS_BRANCH
|
||||||
}
|
}
|
||||||
if (System.env.TRAVIS_TAG != null) {
|
|
||||||
jmeGitTag = System.env.TRAVIS_TAG
|
|
||||||
}
|
|
||||||
if (System.env.TRAVIS_PULL_REQUEST != null &&
|
if (System.env.TRAVIS_PULL_REQUEST != null &&
|
||||||
System.env.TRAVIS_PULL_REQUEST != "false") {
|
System.env.TRAVIS_PULL_REQUEST != "false") {
|
||||||
jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST
|
jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST
|
||||||
}
|
}
|
||||||
|
|
||||||
jmeFullVersion = jmeMainVersion
|
|
||||||
jmePomVersion = jmeVersion
|
|
||||||
|
|
||||||
if (jmeBranchName != "master") {
|
if (jmeBranchName != "master") {
|
||||||
jmeFullVersion += "-${jmeBranchName}"
|
jmeFullVersion += "-${jmeBranchName}"
|
||||||
jmePomVersion += "-${jmeBranchName}"
|
jmePomVersion += "-${jmeBranchName}"
|
||||||
|
|
||||||
jmeNbmUcSuffix = "${jmeBranchName}-"
|
jmeNbmUcSuffix = "${jmeBranchName}-"
|
||||||
} else {
|
} else {
|
||||||
jmeNbmUcSuffix = ""
|
jmeNbmUcSuffix = ""
|
||||||
}
|
}
|
||||||
|
jmeNbmUcSuffix += "nightly/" + jmeMainVersion + "/plugins"
|
||||||
if (jmeVersionTag == "SNAPSHOT") {
|
|
||||||
jmeNbmUcSuffix += "nightly"
|
|
||||||
} else {
|
|
||||||
jmeNbmUcSuffix += "stable"
|
|
||||||
}
|
|
||||||
|
|
||||||
jmeNbmUcSuffix += "/" + jmeMainVersion + "/plugins"
|
|
||||||
|
|
||||||
if (jmeVersionTag == "SNAPSHOT") {
|
|
||||||
jmeFullVersion += "-${jmeRevision}"
|
jmeFullVersion += "-${jmeRevision}"
|
||||||
jmePomVersion += "-SNAPSHOT"
|
jmePomVersion += "-SNAPSHOT"
|
||||||
jmeNbmRevision = jmeRevision
|
jmeNbmRevision = jmeRevision
|
||||||
} else if (jmeVersionTag == "") {
|
|
||||||
jmeNbmRevision = jmeVersionTagID
|
|
||||||
} else {
|
|
||||||
jmeFullVersion += "-${jmeVersionTag}"
|
|
||||||
jmePomVersion += "-${jmeVersionTag}"
|
|
||||||
jmeNbmRevision = jmeVersionTagID
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.warn("Full Version: ${jmeFullVersion}")
|
logger.warn("Full Version: ${jmeFullVersion}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user