Skip to content

Commit 131df81

Browse files
Langston Smithtobrun
authored andcommitted
added setup for bintray release process (#1037)
1 parent 22f3909 commit 131df81

File tree

14 files changed

+172
-193
lines changed

14 files changed

+172
-193
lines changed

Makefile

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,17 @@ javadoc:
2727
./gradlew :services-turf:javadoc; mv services-turf/build/docs/javadoc/ ./documentation/turf/javadoc/ ; \
2828
./gradlew :services:javadoc; mv services/build/docs/javadoc/ ./documentation/services/javadoc/ ; \
2929

30-
publish:
31-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :services-core:uploadArchives ; \
32-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :services-geojson:uploadArchives ; \
33-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :services:uploadArchives ; \
34-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :services-turf:uploadArchives ; \
35-
36-
publish-local:
37-
# This publishes to ~/.m2/repository/com/mapbox/mapboxsdk
38-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :services-core:uploadArchives ; \
39-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :services-geojson:uploadArchives ; \
40-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :services:uploadArchives ; \
41-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :services-turf:uploadArchives ; \
30+
publish-to-bintray:
31+
./gradlew :services-core:bintrayUpload ; \
32+
./gradlew :services-geojson:bintrayUpload ; \
33+
./gradlew :services:bintrayUpload ; \
34+
./gradlew :services-turf:bintrayUpload ; \
35+
36+
publish-snapshot:
37+
./gradlew :services-core:artifactoryPublish ; \
38+
./gradlew :services-geojson:artifactoryPublish ; \
39+
./gradlew :services:artifactoryPublish ; \
40+
./gradlew :services-turf:artifactoryPublish ; \
4241

4342
graphs:
4443
./gradlew :services-core:generateDependencyGraphMapboxLibraries

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ If you want to test recent bugfixes or features that have not been packaged in a
4141

4242
```gradle
4343
repositories {
44-
mavenCentral()
45-
maven { url "http://oss.sonatype.org/content/repositories/snapshots/" }
44+
jcenter()
45+
maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
4646
}
4747
4848
dependencies {

build.gradle

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ buildscript {
1717
classpath pluginDependencies.errorprone
1818
classpath pluginDependencies.buildConfig
1919
classpath pluginDependencies.jacoco
20+
21+
// These plugins are for publishing to Bintray
22+
classpath pluginDependencies.bintray
23+
classpath pluginDependencies.maven
24+
classpath pluginDependencies.artifactory
2025
}
2126
}
2227

@@ -31,9 +36,9 @@ allprojects {
3136
google()
3237
mavenCentral()
3338
jcenter()
39+
// For publishing to Bintray
40+
maven { url 'https://mapbox.bintray.com/mapbox' }
3441
}
35-
group = GROUP
36-
version = VERSION_NAME
3742
}
3843

3944
subprojects {
@@ -97,12 +102,11 @@ subprojects { subproject ->
97102
}
98103

99104
if (RELEASE_MODULES.contains(subproject.name)) {
100-
subproject.apply from: "${rootDir}/gradle/mvn-push.gradle"
105+
subproject.apply from: "${rootDir}/gradle/gradle-bintray.gradle"
101106
subproject.apply from: "${rootDir}/gradle/dependencies-graph.gradle"
102107
}
103108
}
104109

105110
task clean(type: Delete) {
106111
delete rootProject.buildDir
107-
}
108-
112+
}

circle.yml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,29 @@ jobs:
5858
- checkout
5959
- run:
6060
name: Generate Maven credentials
61-
shell: /bin/bash -euo pipefail
6261
command: |
63-
aws s3 cp s3://mapbox/android/signing-credentials/secring.gpg secring.gpg
64-
echo "NEXUS_USERNAME=$PUBLISH_NEXUS_USERNAME
65-
NEXUS_PASSWORD=$PUBLISH_NEXUS_PASSWORD
66-
signing.keyId=$SIGNING_KEYID
67-
signing.password=$SIGNING_PASSWORD
68-
signing.secretKeyRingFile=../secring.gpg" >> gradle.properties
62+
if [ -n "${BINTRAY_USER}" ]; then
63+
echo "BINTRAY_USER=$BINTRAY_USER
64+
BINTRAY_API_KEY=$BINTRAY_API_KEY
65+
GPG_PASSPHRASE=$GPG_PASSPHRASE"
66+
fi
67+
- run:
68+
name: Update version name
69+
command: |
70+
if [[ $CIRCLE_TAG == v* ]]; then
71+
sed -i -e "s/^VERSION_NAME=.*/VERSION_NAME=${CIRCLE_TAG:9}/" gradle.properties
72+
fi
6973
- run:
7074
name: Build Java libraries
7175
command: make build-release
7276
- deploy:
73-
name: Publish Java Services To Maven Central
77+
name: Publish Java libraries to Bintray
7478
command: |
75-
if [ "${CIRCLE_BRANCH}" == "master" ]; then
76-
make publish ;
79+
if [[ $CIRCLE_BRANCH == master ]] || [[ $CIRCLE_TAG == v* ]]; then
80+
version=$(cat gradle.properties | grep "VERSION_NAME")
81+
if [[ $version != *"SNAPSHOT"* ]]; then
82+
make publish-to-bintray
83+
else
84+
make publish-snapshot
85+
fi
7786
fi

gradle.properties

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,6 @@
11
# Project-wide Gradle settings.
22
VERSION_NAME=4.9.0-SNAPSHOT
3-
GROUP=com.mapbox.mapboxsdk
4-
5-
POM_URL=https://github.com/mapbox/mapbox-java
6-
POM_SCM_URL=https://github.com/mapbox/mapbox-java
7-
POM_SCM_CONNECTION=scm:[email protected]:mapbox/mapbox-java.git
8-
POM_SCM_DEV_CONNECTION=scm:[email protected]:mapbox/mapbox-java.git
9-
10-
POM_LICENCE_NAME=The Apache Software License, Version 2.0
11-
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
12-
POM_LICENCE_DIST=repo
13-
14-
POM_DEVELOPER_ID=mapbox
15-
POM_DEVELOPER_NAME=Mapbox
163

174
# Specifies the JVM arguments used for the daemon process.
185
# The setting is particularly useful for tweaking memory settings.
19-
org.gradle.jvmargs=-Xmx2048M
20-
21-
# When configured, Gradle will run in incubating parallel mode.
22-
# This option should only be used with decoupled projects. More details, visit
23-
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
24-
# org.gradle.parallel=true
25-
26-
# Publishing
27-
#NEXUS_USERNAME=
28-
#NEXUS_PASSWORD=
29-
#signing.keyId=
30-
#signing.password=
31-
#signing.secretKeyRingFile=
32-
6+
org.gradle.jvmargs=-Xmx2048M

gradle/artifact-settings.gradle

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ext {
2+
3+
mapboxArtifactGroupId = 'com.mapbox.mapboxsdk'
4+
mapboxArtifactId = project.hasProperty('POM_ARTIFACT_ID') ? project.property('POM_ARTIFACT_ID') : System.getenv('POM_ARTIFACT_ID')
5+
mapboxArtifactTitle = 'Mapbox Java SDK'
6+
mapboxArtifactDescription = project.hasProperty('POM_DESCRIPTION') ? project.property('POM_DESCRIPTION') : System.getenv('POM_DESCRIPTION')
7+
mapboxDeveloperName = 'Mapbox'
8+
mapboxDeveloperEmail = '[email protected]'
9+
mapboxDeveloperOrganization = 'Mapbox'
10+
mapboxDeveloperOrganizationUrl = 'http://www.mapbox.com'
11+
mapboxDeveloperId = 'mapbox'
12+
mapboxArtifactUrl = 'https://github.com/mapbox/mapbox-java'
13+
mapboxArtifactVcsUrl = 'https://github.com/mapbox/mapbox-java.git'
14+
mapboxArtifactScmUrl = 'scm:[email protected]:mapbox/mapbox-java.git'
15+
mapboxArtifactLicenseName = 'The Apache Software License, Version 2.0'
16+
mapboxArtifactLicenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
17+
versionName = project.hasProperty('VERSION_NAME') ? project.property('VERSION_NAME') : System.getenv('VERSION_NAME')
18+
19+
mapboxBintrayUserOrg = 'mapbox'
20+
mapboxBintrayRepoName = 'mapbox'
21+
mapboxBintrayUser = project.hasProperty('BINTRAY_USER') ? project.property('BINTRAY_USER') : System.getenv('BINTRAY_USER')
22+
mapboxBintrayApiKey = project.hasProperty('BINTRAY_API_KEY') ? project.property('BINTRAY_API_KEY') : System.getenv('BINTRAY_API_KEY')
23+
mapboxGpgPassphrase = project.hasProperty('GPG_PASSPHRASE') ? project.property('GPG_PASSPHRASE') : System.getenv('GPG_PASSPHRASE')
24+
}

gradle/dependencies.gradle

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@ ext {
1919
errorprone : '0.0.14',
2020
spotbugs : '1.3',
2121
buildConfig: '1.1.8',
22-
dependencyGraph: '0.4.0'
23-
22+
dependencyGraph: '0.4.0',
23+
bintray : '1.8.4',
24+
maven : '3.6.2',
25+
artifactory: '4.9.3',
2426
]
27+
2528
dependenciesList = [
2629
autoValue : "com.google.auto.value:auto-value:${version.autoValue}",
2730
autoValueGson : "com.ryanharter.auto.value:auto-value-gson:${version.autoValueGson}",
@@ -45,6 +48,9 @@ ext {
4548
errorprone : "net.ltgt.gradle:gradle-errorprone-plugin:${pluginVersion.errorprone}",
4649
buildConfig: "gradle.plugin.de.fuerstenau:BuildConfigPlugin:${pluginVersion.buildConfig}",
4750
dependencyGraph: "com.vanniktech:gradle-dependency-graph-generator-plugin:${pluginVersion.dependencyGraph}",
48-
jacoco : "com.vanniktech:gradle-android-junit-jacoco-plugin:${pluginVersion.jacoco}"
51+
jacoco : "com.vanniktech:gradle-android-junit-jacoco-plugin:${pluginVersion.jacoco}",
52+
bintray : "com.jfrog.bintray.gradle:gradle-bintray-plugin:${pluginVersion.bintray}",
53+
maven : "digital.wup:android-maven-publish:${pluginVersion.maven}",
54+
artifactory: "org.jfrog.buildinfo:build-info-extractor-gradle:${pluginVersion.artifactory}",
4955
]
5056
}

gradle/gradle-bintray.gradle

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
apply plugin: 'digital.wup.android-maven-publish'
2+
apply plugin: 'java'
3+
apply plugin: 'maven-publish'
4+
apply plugin: 'com.jfrog.bintray'
5+
apply plugin: 'com.jfrog.artifactory'
6+
apply from: file('../gradle/artifact-settings.gradle')
7+
8+
publishing {
9+
publications {
10+
MapboxJavaSDKPublication(MavenPublication) {
11+
from components.java
12+
groupId project.ext.mapboxArtifactGroupId
13+
artifactId project.ext.mapboxArtifactId
14+
version project.ext.versionName
15+
16+
afterEvaluate {
17+
artifact("$buildDir/outputs/aar/${project.ext.mapboxArtifactId}-release.aar")
18+
artifact sourcesJar
19+
artifact javadocJar
20+
}
21+
22+
pom.withXml {
23+
final mainNode = asNode()
24+
mainNode.appendNode('name', project.ext.mapboxArtifactTitle)
25+
mainNode.appendNode('description', project.ext.mapboxArtifactTitle)
26+
mainNode.appendNode('url', project.ext.mapboxArtifactUrl)
27+
28+
final licenseNode = mainNode.appendNode('licenses').appendNode('license')
29+
licenseNode.appendNode('name', project.ext.mapboxArtifactLicenseName)
30+
licenseNode.appendNode('url', project.ext.mapboxArtifactLicenseUrl)
31+
licenseNode.appendNode('distribution', "repo")
32+
33+
final developerNode = mainNode.appendNode('developers').appendNode('developer')
34+
developerNode.appendNode('id', project.ext.mapboxDeveloperId)
35+
developerNode.appendNode('name', project.ext.mapboxDeveloperName)
36+
developerNode.appendNode('email', project.ext.mapboxDeveloperEmail)
37+
developerNode.appendNode('organization', project.ext.mapboxDeveloperOrganization)
38+
developerNode.appendNode('organizationUrl', project.ext.mapboxDeveloperOrganizationUrl)
39+
40+
final scmNode = mainNode.appendNode("scm")
41+
scmNode.appendNode("connection", project.ext.mapboxArtifactScmUrl)
42+
scmNode.appendNode("developerConnection", project.ext.mapboxArtifactScmUrl)
43+
scmNode.appendNode("url", project.ext.mapboxArtifactUrl)
44+
}
45+
46+
}
47+
}
48+
}
49+
50+
bintray {
51+
user = mapboxBintrayUser
52+
key = mapboxBintrayApiKey
53+
publications = ['MapboxJavaSDKPublication']
54+
pkg {
55+
repo = project.ext.mapboxBintrayRepoName
56+
name = project.ext.mapboxArtifactId
57+
userOrg = project.ext.mapboxBintrayUserOrg
58+
licenses = [project.ext.mapboxArtifactLicenseName]
59+
vcsUrl = project.ext.mapboxArtifactVcsUrl
60+
publish = false
61+
version {
62+
name = project.ext.versionName
63+
desc = project.ext.mapboxArtifactDescription
64+
released = new Date()
65+
gpg {
66+
sign = true
67+
passphrase = mapboxGpgPassphrase
68+
}
69+
mavenCentralSync {
70+
sync = false
71+
}
72+
}
73+
}
74+
}
75+
76+
artifactory {
77+
contextUrl = 'http://oss.jfrog.org'
78+
publish {
79+
repository {
80+
repoKey = 'oss-snapshot-local'
81+
username = mapboxBintrayUser
82+
password = mapboxBintrayApiKey
83+
}
84+
defaults {
85+
publications('MapboxJavaSDKPublication')
86+
}
87+
}
88+
}
89+
90+
91+
tasks.withType(Javadoc) {
92+
options.addStringOption('encoding', 'UTF-8')
93+
options.addStringOption('docencoding', 'UTF-8')
94+
options.addStringOption('charset', 'UTF-8')
95+
}

0 commit comments

Comments
 (0)