Skip to content

Commit ee9a113

Browse files
committed
refactor release scripts for sdk registry
1 parent f16813f commit ee9a113

24 files changed

Lines changed: 136 additions & 144 deletions

File tree

INSTALL.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ Using the MAS testapp will require a valid [Mapbox access token](https://www.map
2323
</resources>
2424
```
2525

26-
## 3: Begin developing
26+
## 3. Add an `SDK_REGISTRY_TOKEN`
27+
28+
Add the gradle property or env variable with a **secret token**. The token needs to have the `DOWNLOADS:READ` scope. You can obtain the token from your [Mapbox Account page](https://account.mapbox.com/access-tokens/).
29+
30+
## 4: Begin developing
2731

2832
We recommend using [Android Studio](https://developer.android.com/studio/index.html) to work on the code base.

Makefile

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,13 @@ javadoc:
3030
./gradlew :services-turf:javadoc; mv services-turf/build/docs/javadoc/ ./documentation/turf/javadoc/ ; \
3131
./gradlew :services:javadoc; mv services/build/docs/javadoc/ ./documentation/services/javadoc/ ; \
3232

33-
publish-to-bintray:
34-
./gradlew :services-core:bintrayUpload ; \
35-
./gradlew :services-geojson:bintrayUpload ; \
36-
./gradlew :services:bintrayUpload ; \
37-
./gradlew :services-turf:bintrayUpload ; \
38-
./gradlew :services-directions-models:bintrayUpload ; \
39-
./gradlew :services-directions-refresh-models:bintrayUpload ; \
40-
41-
publish-snapshot:
42-
./gradlew :services-core:artifactoryPublish ; \
43-
./gradlew :services-geojson:artifactoryPublish ; \
44-
./gradlew :services:artifactoryPublish ; \
45-
./gradlew :services-turf:artifactoryPublish ; \
46-
./gradlew :services-directions-models:artifactoryPublish ; \
47-
./gradlew :services-directions-refresh-models:artifactoryPublish ; \
33+
publish-to-sdk-registry:
34+
./gradlew :services-core:mapboxSDKRegistryUpload ; \
35+
./gradlew :services-geojson:mapboxSDKRegistryUpload ; \
36+
./gradlew :services:mapboxSDKRegistryUpload ; \
37+
./gradlew :services-turf:mapboxSDKRegistryUpload ; \
38+
./gradlew :services-directions-models:mapboxSDKRegistryUpload ; \
39+
./gradlew :services-directions-refresh-models:mapboxSDKRegistryUpload ; \
4840

4941
graphs:
5042
./gradlew :services-core:generateDependencyGraphMapboxLibraries

build.gradle

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@ buildscript {
66
google()
77
mavenCentral()
88
jcenter()
9+
maven {
10+
url 'https://api.mapbox.com/downloads/v2/releases/maven'
11+
authentication {
12+
basic(BasicAuthentication)
13+
}
14+
credentials {
15+
username = "mapbox"
16+
password = project.hasProperty('SDK_REGISTRY_TOKEN') ? project.property('SDK_REGISTRY_TOKEN') : System.getenv('SDK_REGISTRY_TOKEN')
17+
}
18+
}
919
}
1020

1121
dependencies {
@@ -14,14 +24,10 @@ buildscript {
1424
transitive = false
1525
}
1626

27+
classpath pluginDependencies.jacoco
1728
classpath pluginDependencies.errorprone
1829
classpath pluginDependencies.buildConfig
19-
classpath pluginDependencies.jacoco
20-
21-
// These plugins are for publishing to Bintray
22-
classpath pluginDependencies.bintray
23-
classpath pluginDependencies.maven
24-
classpath pluginDependencies.artifactory
30+
classpath pluginDependencies.mapboxSdkRegistry
2531
}
2632
}
2733

@@ -36,9 +42,18 @@ allprojects {
3642
google()
3743
mavenCentral()
3844
jcenter()
39-
// For publishing to Bintray
40-
maven { url 'https://mapbox.bintray.com/mapbox' }
41-
maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
45+
maven {
46+
url 'https://api.mapbox.com/downloads/v2/releases/maven'
47+
authentication {
48+
basic(BasicAuthentication)
49+
}
50+
credentials {
51+
username = "mapbox"
52+
password = project.hasProperty('SDK_REGISTRY_TOKEN') ? project.property('SDK_REGISTRY_TOKEN') : System.getenv('SDK_REGISTRY_TOKEN')
53+
}
54+
}
55+
// uncomment if snapshots access is needed
56+
// maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
4257
}
4358
}
4459

@@ -104,13 +119,14 @@ subprojects { subproject ->
104119
}
105120

106121
if (TESTABLE_MODULES.contains(subproject.name)) {
107-
subproject.apply plugin: "com.vanniktech.android.junit.jacoco"
108-
subproject.apply from: "${rootDir}/gradle/jacoco.gradle"
109-
subproject.apply from: "${rootDir}/gradle/checkstyle.gradle"
122+
afterEvaluate { project ->
123+
project.apply from: "${rootDir}/gradle/jacoco.gradle"
124+
project.apply from: "${rootDir}/gradle/checkstyle.gradle"
125+
}
110126
}
111127

112128
if (RELEASE_MODULES.contains(subproject.name)) {
113-
subproject.apply from: "${rootDir}/gradle/gradle-bintray.gradle"
129+
subproject.apply from: "${rootDir}/gradle/publish.gradle"
114130
subproject.apply from: "${rootDir}/gradle/dependencies-graph.gradle"
115131
}
116132

circle.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ jobs:
8181
if [[ $CIRCLE_BRANCH == master ]] || [[ $CIRCLE_TAG == v* ]]; then
8282
version=$(cat gradle.properties | grep "VERSION_NAME")
8383
if [[ $version != *"SNAPSHOT"* ]]; then
84-
make publish-to-bintray
85-
else
86-
make publish-snapshot
84+
make publish-to-sdk-registry
8785
fi
8886
fi

gradle/artifact-settings.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,4 @@ ext {
1515
mapboxArtifactLicenseName = 'The Apache Software License, Version 2.0'
1616
mapboxArtifactLicenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
1717
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')
2418
}

gradle/dependencies.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,17 @@ ext {
1616

1717
pluginVersion = [
1818
checkstyle : '8.11.0',
19-
jacoco : '0.13.0',
2019
errorprone : '0.0.14',
2120
spotbugs : '1.3',
2221
buildConfig: '1.1.8',
2322
dependencyGraph: '0.4.0',
2423
bintray : '1.8.4',
24+
jacoco : '0.8.6',
2525
maven : '3.6.2',
2626
artifactory: '4.9.3',
2727
kotlin : '1.3.72',
2828
shadowJar : '4.0.4',
29+
mapboxSdkRegistry : '0.4.0'
2930
]
3031

3132
dependenciesList = [
@@ -51,11 +52,12 @@ ext {
5152
errorprone : "net.ltgt.gradle:gradle-errorprone-plugin:${pluginVersion.errorprone}",
5253
buildConfig: "gradle.plugin.de.fuerstenau:BuildConfigPlugin:${pluginVersion.buildConfig}",
5354
dependencyGraph: "com.vanniktech:gradle-dependency-graph-generator-plugin:${pluginVersion.dependencyGraph}",
54-
jacoco : "com.vanniktech:gradle-android-junit-jacoco-plugin:${pluginVersion.jacoco}",
55+
jacoco : "org.jacoco:org.jacoco.core:${pluginVersion.jacoco}",
5556
bintray : "com.jfrog.bintray.gradle:gradle-bintray-plugin:${pluginVersion.bintray}",
5657
maven : "digital.wup:android-maven-publish:${pluginVersion.maven}",
5758
artifactory: "org.jfrog.buildinfo:build-info-extractor-gradle:${pluginVersion.artifactory}",
5859
kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${pluginVersion.kotlin}",
5960
shadowJar : "com.github.jengelman.gradle.plugins:shadow:${pluginVersion.shadowJar}",
61+
mapboxSdkRegistry : "com.mapbox.gradle.plugins:sdk-registry:${pluginVersion.mapboxSdkRegistry}"
6062
]
6163
}

gradle/gradle-bintray.gradle

Lines changed: 0 additions & 97 deletions
This file was deleted.

gradle/jacoco.gradle

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,17 @@ jacoco {
66

77
test {
88
jacoco {
9-
append false
109
excludes.add("**/samples/**")
11-
// excludes.add("**/generated/**")
12-
// excludes.add("**/*_.class")
1310
}
1411
}
1512

16-
jacocoTestReport {
13+
jacocoTestReport{
14+
dependsOn test
1715
group = 'Coverage reports'
1816
description = 'Generates a test coverage report for a project'
1917

2018
reports {
2119
xml.enabled = true
2220
html.enabled = true
2321
}
24-
}
22+
}

gradle/publish.gradle

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
apply plugin: 'java'
2+
apply plugin: 'maven-publish'
3+
apply plugin: 'com.mapbox.sdkRegistry'
4+
apply from: file("${rootDir}/gradle/artifact-settings.gradle")
5+
6+
afterEvaluate {
7+
publishing {
8+
publications {
9+
MapboxJavaSDKPublication(MavenPublication) {
10+
from components.java
11+
groupId project.ext.mapboxArtifactGroupId
12+
artifactId project.ext.mapboxArtifactId
13+
version project.ext.versionName
14+
15+
artifact sourcesJar {
16+
classifier "sources"
17+
}
18+
19+
artifact javadocJar {
20+
classifier "javadoc"
21+
}
22+
23+
pom.withXml {
24+
final mainNode = asNode()
25+
mainNode.appendNode('name', project.ext.mapboxArtifactTitle)
26+
mainNode.appendNode('description', project.ext.mapboxArtifactTitle)
27+
mainNode.appendNode('url', project.ext.mapboxArtifactUrl)
28+
29+
final licenseNode = mainNode.appendNode('licenses').appendNode('license')
30+
licenseNode.appendNode('name', project.ext.mapboxArtifactLicenseName)
31+
licenseNode.appendNode('url', project.ext.mapboxArtifactLicenseUrl)
32+
licenseNode.appendNode('distribution', "repo")
33+
34+
final developerNode = mainNode.appendNode('developers').appendNode('developer')
35+
developerNode.appendNode('id', project.ext.mapboxDeveloperId)
36+
developerNode.appendNode('name', project.ext.mapboxDeveloperName)
37+
developerNode.appendNode('email', project.ext.mapboxDeveloperEmail)
38+
developerNode.appendNode('organization', project.ext.mapboxDeveloperOrganization)
39+
developerNode.appendNode('organizationUrl', project.ext.mapboxDeveloperOrganizationUrl)
40+
41+
final scmNode = mainNode.appendNode("scm")
42+
scmNode.appendNode("connection", project.ext.mapboxArtifactScmUrl)
43+
scmNode.appendNode("developerConnection", project.ext.mapboxArtifactScmUrl)
44+
scmNode.appendNode("url", project.ext.mapboxArtifactUrl)
45+
}
46+
}
47+
}
48+
}
49+
}
50+
51+
def sdkNameMap = [:]
52+
sdkNameMap["services"] = "com-mapbox-mapboxsdk-mapbox-sdk-services"
53+
sdkNameMap["services-core"] = "com-mapbox-mapboxsdk-mapbox-sdk-core"
54+
sdkNameMap["services-directions-models"] = "com-mapbox-mapboxsdk-mapbox-sdk-directions-models"
55+
sdkNameMap["services-directions-refresh-models"] = "com-mapbox-mapboxsdk-mapbox-sdk-directions-refresh-models"
56+
sdkNameMap["services-geojson"] = "com-mapbox-mapboxsdk-mapbox-sdk-geojson"
57+
sdkNameMap["services-turf"] = "com-mapbox-mapboxsdk-mapbox-sdk-turf"
58+
59+
registry {
60+
sdkName = sdkNameMap[project.name]
61+
production = true
62+
snapshot = project.ext.versionName.endsWith("-SNAPSHOT")
63+
override = snapshot ? true : false
64+
dryRun = false
65+
publish = true
66+
publications = ["MapboxJavaSDKPublication"]
67+
}
68+
69+
tasks.withType(Javadoc) {
70+
options.addStringOption('encoding', 'UTF-8')
71+
options.addStringOption('docencoding', 'UTF-8')
72+
options.addStringOption('charset', 'UTF-8')
73+
}

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip

0 commit comments

Comments
 (0)