Skip to content

Commit 4ccd0a1

Browse files
author
Kevin Li
authored
Add sdk-registry config (#1177)
* Add sdk-registry config * Update config * Update docker image * Update version name for offline
1 parent 8d65337 commit 4ccd0a1

File tree

24 files changed

+121
-140
lines changed

24 files changed

+121
-140
lines changed

Makefile

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,9 @@ javadoc:
2323
# Output is ./mapbox/*/build/docs/javadoc/release
2424
./gradlew javadocrelease
2525

26+
# Uploads the compiled Android SDK to Mapbox SDK Registry
2627
publish:
27-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew uploadArchives
28-
29-
publish-local:
30-
# This publishes to ~/.m2/repository/com/mapbox/mapboxsdk
31-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew uploadArchives
28+
./gradlew mapboxSDKRegistryUpload
3229

3330
generate-sanity-test:
3431
npm install && node scripts/generate-activity-test.js
@@ -54,11 +51,7 @@ javadoc-$1:
5451
./gradlew :$2:javadocrelease
5552

5653
publish-$1:
57-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :$2:uploadArchives
58-
59-
publish-local-$1:
60-
# This publishes to ~/.m2/repository/com/mapbox/mapboxsdk
61-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :$2:uploadArchives
54+
./gradlew :$2:mapboxSDKRegistryUpload
6255

6356
endef
6457

build.gradle

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,21 @@ buildscript {
66
jcenter()
77
maven { url "https://maven.google.com" }
88
maven { url "https://plugins.gradle.org/m2/" }
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 {
22+
classpath pluginDependencies.mapboxSdkRegistryPlugin
23+
classpath pluginDependencies.androidPublish
1224
classpath pluginDependencies.gradle
1325
classpath pluginDependencies.kotlin
1426
classpath pluginDependencies.kotlinLint
@@ -42,4 +54,4 @@ subprojects {
4254

4355
task clean(type: Delete) {
4456
delete rootProject.buildDir
45-
}
57+
}

circle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
build:
1111
working_directory: ~/code
1212
docker:
13-
- image: mbgl/android-ndk-r19:8e91a7ebab
13+
- image: mbgl/android-ndk-r21:769c31f1d8
1414
environment:
1515
JVM_OPTS: -Xmx3200m
1616
BUILDTYPE: Debug
@@ -81,7 +81,7 @@ jobs:
8181
# ------------------------------------------------------------------------------
8282
release:
8383
docker:
84-
- image: mbgl/android-ndk-r19:8e91a7ebab
84+
- image: mbgl/android-ndk-r21:769c31f1d8
8585
working_directory: ~/code
8686
environment:
8787
BUILDTYPE: Release

gradle/artifact-settings.gradle

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
ext {
2+
mapboxArtifactGroupId = 'com.mapbox.mapboxsdk'
3+
mapboxArtifactId = project.property('POM_ARTIFACT_ID')
4+
mapboxArtifactTitle = project.property('POM_NAME')
5+
mapboxArtifactDescription = project.property('POM_DESCRIPTION')
6+
mapboxDeveloperName = 'Mapbox'
7+
mapboxDeveloperId = 'mapbox'
8+
mapboxArtifactUrl = 'https://github.com/mapbox/mapbox-plugins-android'
9+
mapboxArtifactVcsUrl = '[email protected]:mapbox/mapbox-plugins-android.git'
10+
mapboxArtifactScmUrl = 'scm:[email protected]:mapbox/mapbox-plugins-android.git'
11+
mapboxArtifactLicenseName = 'BSD'
12+
mapboxArtifactLicenseUrl = 'https://opensource.org/licenses/BSD-2-Clause'
13+
versionName = project.property('VERSION_NAME')
14+
mapboxRegistrySdkName = project.hasProperty('REGISTRY_SDK_NAME') ? project.property('REGISTRY_SDK_NAME') : System.getenv('REGISTRY_SDK_NAME')
15+
}

gradle/dependencies.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@
3535
gradle : '3.4.0',
3636
kotlin : '1.3.50',
3737
dokka : '0.9.17',
38-
kotlinLint: '8.1.0'
38+
kotlinLint: '8.1.0',
39+
mapboxSdkRegistryPlugin: '0.4.0',
40+
pluginMavenPublish: "3.6.2"
3941
]
4042

4143
dependenciesList = [
@@ -98,6 +100,8 @@
98100
checkstyle: "com.puppycrawl.tools:checkstyle:${pluginVersion.checkstyle}",
99101
kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${pluginVersion.kotlin}",
100102
dokka : "org.jetbrains.dokka:dokka-android-gradle-plugin:${pluginVersion.dokka}",
101-
kotlinLint: "org.jlleitschuh.gradle:ktlint-gradle:${pluginVersion.kotlinLint}"
103+
kotlinLint: "org.jlleitschuh.gradle:ktlint-gradle:${pluginVersion.kotlinLint}",
104+
mapboxSdkRegistryPlugin: "com.mapbox.gradle.plugins:sdk-registry:${pluginVersion.mapboxSdkRegistryPlugin}",
105+
androidPublish: "digital.wup:android-maven-publish:${pluginVersion.pluginMavenPublish}"
102106
]
103107
}

gradle/publish.gradle

Lines changed: 61 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,79 @@
1-
apply plugin: 'maven'
2-
apply plugin: 'signing'
3-
4-
def isReleaseBuild() {
5-
return VERSION_NAME.contains("SNAPSHOT") == false
6-
}
7-
8-
static def isLocalBuild() {
9-
if (System.getenv('IS_LOCAL_DEVELOPMENT') != null) {
10-
return System.getenv('IS_LOCAL_DEVELOPMENT').toBoolean()
11-
}
12-
return true
13-
}
14-
15-
def getReleaseRepositoryUrl() {
16-
return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
17-
: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
18-
}
19-
20-
def getSnapshotRepositoryUrl() {
21-
return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
22-
: "https://oss.sonatype.org/content/repositories/snapshots/"
23-
}
24-
25-
def obtainMavenLocalUrl() {
26-
return getRepositories().mavenLocal().getUrl()
27-
}
28-
29-
def getRepositoryUsername() {
30-
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
31-
}
32-
33-
def getRepositoryPassword() {
34-
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
35-
}
36-
37-
afterEvaluate { project ->
38-
uploadArchives {
39-
repositories {
40-
mavenDeployer {
41-
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
42-
43-
pom.groupId = GROUP
44-
pom.artifactId = POM_ARTIFACT_ID
45-
pom.version = VERSION_NAME
46-
47-
if (isLocalBuild()) {
48-
repository(url: obtainMavenLocalUrl())
49-
} else {
50-
repository(url: getReleaseRepositoryUrl()) {
51-
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
52-
}
53-
snapshotRepository(url: getSnapshotRepositoryUrl()) {
54-
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
55-
}
56-
}
57-
58-
pom.project {
59-
name POM_NAME
60-
packaging POM_PACKAGING
61-
description POM_DESCRIPTION
62-
url POM_URL
63-
64-
scm {
65-
url POM_SCM_URL
66-
connection POM_SCM_CONNECTION
67-
developerConnection POM_SCM_DEV_CONNECTION
68-
}
69-
70-
licenses {
71-
license {
72-
name POM_LICENCE_NAME
73-
url POM_LICENCE_URL
74-
distribution POM_LICENCE_DIST
1+
apply plugin: 'digital.wup.android-maven-publish'
2+
apply plugin: 'maven-publish'
3+
apply plugin: 'com.mapbox.sdkRegistry'
4+
apply from: file('../gradle/artifact-settings.gradle')
5+
6+
version = project.ext.versionName
7+
group = project.ext.mapboxArtifactGroupId
8+
9+
publishing {
10+
publications {
11+
ModularMapboxMapsSdkRegistryPublication(MavenPublication) {
12+
from components.android
13+
groupId this.group
14+
artifactId project.ext.mapboxArtifactId
15+
version this.version
16+
afterEvaluate {
17+
artifact(androidSourcesJar)
18+
artifact(androidJavadocsJar)
7519
}
76-
}
7720

78-
developers {
79-
developer {
80-
id POM_DEVELOPER_ID
81-
name POM_DEVELOPER_NAME
21+
pom.withXml {
22+
final mainNode = asNode()
23+
mainNode.appendNode('name', project.ext.mapboxArtifactTitle)
24+
mainNode.appendNode('description', project.ext.mapboxArtifactTitle)
25+
mainNode.appendNode('url', project.ext.mapboxArtifactUrl)
26+
27+
final licenseNode = mainNode.appendNode('licenses').appendNode('license')
28+
licenseNode.appendNode('name', project.ext.mapboxArtifactLicenseName)
29+
licenseNode.appendNode('url', project.ext.mapboxArtifactLicenseUrl)
30+
licenseNode.appendNode('distribution', "repo")
31+
32+
final developerNode = mainNode.appendNode('developers').appendNode('developer')
33+
developerNode.appendNode('id', project.ext.mapboxDeveloperId)
34+
developerNode.appendNode('name', project.ext.mapboxDeveloperName)
35+
36+
final scmNode = mainNode.appendNode("scm")
37+
scmNode.appendNode("connection", project.ext.mapboxArtifactScmUrl)
38+
scmNode.appendNode("developerConnection", project.ext.mapboxArtifactScmUrl)
39+
scmNode.appendNode("url", project.ext.mapboxArtifactUrl)
8240
}
83-
}
8441
}
85-
}
8642
}
87-
}
43+
}
8844

89-
signing {
90-
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
91-
sign configurations.archives
92-
}
45+
registry {
46+
sdkName = project.ext.mapboxRegistrySdkName
47+
override = project.ext.versionName.endsWith("-SNAPSHOT")
48+
dryRun = false
49+
publish = true
50+
snapshot = project.ext.versionName.endsWith("-SNAPSHOT")
51+
publishMessage = "cc @mapbox/maps-android"
52+
publications = ["ModularMapboxMapsSdkRegistryPublication"]
53+
}
9354

94-
task androidJavadocs(type: Javadoc) {
95-
source = android.sourceSets.main.java.srcDirs
96-
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
97-
}
55+
task androidJavadocs(type: Javadoc) {
56+
source = android.sourceSets.main.java.sourceFiles
57+
classpath = files(android.bootClasspath)
58+
failOnError = false
59+
}
9860

99-
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
61+
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
10062
classifier = 'dokka'
10163
from androidJavadocs.destinationDir
102-
}
64+
}
10365

104-
task androidSourcesJar(type: Jar) {
66+
task androidSourcesJar(type: Jar) {
10567
classifier = 'sources'
10668
from android.sourceSets.main.java.sourceFiles
107-
}
108-
109-
artifacts {
110-
archives androidSourcesJar
111-
archives androidJavadocsJar
112-
}
11369
}
11470

11571
// See: https://github.com/chrisbanes/gradle-mvn-push/issues/43#issuecomment-84140513
11672
afterEvaluate { project ->
117-
android.libraryVariants.all { variant ->
118-
tasks.androidJavadocs.doFirst {
119-
classpath += files(variant.javaCompile.classpath.files)
120-
classpath += configurations.javadocDeps
73+
android.libraryVariants.all { variant ->
74+
tasks.androidJavadocs.doFirst {
75+
classpath += files(variant.javaCompile.classpath.files)
76+
classpath += configurations.javadocDeps
77+
}
12178
}
122-
}
123-
}
79+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Mon Apr 29 20:21:20 CEST 2019
1+
#Mon Mar 22 20:37:29 CST 2021
22
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-5.1.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

ktx-mapbox-maps/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ dependencies {
3939

4040
apply from: "${rootDir}/gradle/javadoc.gradle"
4141
apply from: "${rootDir}/gradle/publish.gradle"
42-
apply from: "${rootDir}/gradle/checkstyle.gradle"
42+
apply from: "${rootDir}/gradle/checkstyle.gradle"

ktx-mapbox-maps/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ VERSION_NAME=0.1.0-SNAPSHOT
22
POM_ARTIFACT_ID=mapbox-android-sdk-ktx-v7
33
POM_NAME=Mapbox Maps SDK for Android KTX
44
POM_DESCRIPTION=A set of Kotlin extensions for the Mapbox Maps SDK for Android.
5-
POM_PACKAGING=aar
5+
REGISTRY_SDK_NAME=mapbox-android-ktx

plugin-annotation/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ dependencies {
3434
apply from: "${rootDir}/gradle/javadoc.gradle"
3535
apply from: "${rootDir}/gradle/publish.gradle"
3636
apply from: "${rootDir}/gradle/checkstyle.gradle"
37-
apply from: "${rootDir}/gradle/nitpick.gradle"
37+
apply from: "${rootDir}/gradle/nitpick.gradle"

0 commit comments

Comments
 (0)