Skip to content

Commit abbd010

Browse files
Langston Smithlangsmith
authored andcommitted
initial additions
1 parent 935e156 commit abbd010

File tree

16 files changed

+270
-161
lines changed

16 files changed

+270
-161
lines changed

Makefile

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
MBGL_ANDROID_PLUGINS += traffic;plugin-traffic
2-
MBGL_ANDROID_PLUGINS += locationlayer;plugin-locationlayer
32
MBGL_ANDROID_PLUGINS += building;plugin-building
43
MBGL_ANDROID_PLUGINS += offline;plugin-offline
54
MBGL_ANDROID_PLUGINS += places;plugin-places
5+
MBGL_ANDROID_PLUGINS += annotation;plugin-annotation
66
MBGL_ANDROID_PLUGINS += localization;plugin-localization
7+
MBGL_ANDROID_PLUGINS += markerview;plugin-markerview
8+
MBGL_ANDROID_PLUGINS += scalebar;plugin-scalebar
79

810
checkstyle:
911
./gradlew checkstyle && ./gradlew ktlintCheck
@@ -23,11 +25,14 @@ javadoc:
2325
./gradlew javadocrelease
2426

2527
publish:
26-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew uploadArchives
28+
export IS_LOCAL_DEVELOPMENT=false; ./gradlew bintrayUpload
29+
30+
publish-snapshot:
31+
export IS_LOCAL_DEVELOPMENT=false; ./gradlew artifactoryPublish
2732

2833
publish-local:
2934
# This publishes to ~/.m2/repository/com/mapbox/mapboxsdk
30-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew uploadArchives
35+
export IS_LOCAL_DEVELOPMENT=true; ./gradlew bintrayUpload
3136

3237
generate-sanity-test:
3338
npm install && node scripts/generate-activity-test.js
@@ -53,11 +58,14 @@ javadoc-$1:
5358
./gradlew :$2:javadocrelease
5459

5560
publish-$1:
56-
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :$2:uploadArchives
61+
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :$2:bintrayUpload
62+
63+
publish-snapshot-$1:
64+
export IS_LOCAL_DEVELOPMENT=false; ./gradlew :$2:artifactoryPublish
5765

5866
publish-local-$1:
5967
# This publishes to ~/.m2/repository/com/mapbox/mapboxsdk
60-
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :$2:uploadArchives
68+
export IS_LOCAL_DEVELOPMENT=true; ./gradlew :$2:bintrayUpload
6169

6270
endef
6371

build.gradle

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,27 @@ buildscript {
66
jcenter()
77
maven { url "https://maven.google.com" }
88
maven { url "https://plugins.gradle.org/m2/" }
9+
maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
910
}
1011

1112
dependencies {
1213
classpath pluginDependencies.gradle
1314
classpath pluginDependencies.kotlin
1415
classpath pluginDependencies.kotlinLint
16+
17+
// These plugins are for publishing to Bintray
18+
classpath pluginDependencies.bintray
19+
classpath pluginDependencies.androidPublishPlugin
20+
classpath pluginDependencies.artifactory
1521
}
1622
}
1723

1824
allprojects {
1925
repositories {
2026
google()
2127
jcenter()
22-
// SNAPSHOT repository
23-
// maven { url "http://oss.sonatype.org/content/repositories/snapshots/" }
28+
// For publishing to Bintray
29+
maven { url 'https://mapbox.bintray.com/mapbox' }
2430
}
2531
}
2632

@@ -31,4 +37,4 @@ subprojects {
3137

3238
task clean(type: Delete) {
3339
delete rootProject.buildDir
34-
}
40+
}

circle.yml

Lines changed: 58 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ jobs:
1414
environment:
1515
JVM_OPTS: -Xmx3200m
1616
BUILDTYPE: Debug
17-
IS_LOCAL_DEVELOPMENT: false
1817
steps:
1918
- checkout
2019
- restore_cache:
@@ -85,33 +84,78 @@ jobs:
8584
working_directory: ~/code
8685
environment:
8786
BUILDTYPE: Release
88-
IS_LOCAL_DEVELOPMENT: false
8987
steps:
9088
- checkout
9189
- run:
9290
name: Init submodules
9391
command: git submodule update --init --recursive
9492
- run:
95-
name: Generate Maven credentials
93+
name: Generate Bintray credentials
9694
shell: /bin/bash -euo pipefail
9795
command: |
98-
if [ -n "${PUBLISH_NEXUS_USERNAME}" ]; then
99-
aws s3 cp s3://mapbox/android/signing-credentials/secring.gpg secring.gpg
100-
echo "NEXUS_USERNAME=$PUBLISH_NEXUS_USERNAME
101-
NEXUS_PASSWORD=$PUBLISH_NEXUS_PASSWORD
102-
signing.keyId=$SIGNING_KEYID
103-
signing.password=$SIGNING_PASSWORD
104-
signing.secretKeyRingFile=../secring.gpg" >> gradle.properties
96+
if [ -n "${BINTRAY_USER}" ]; then
97+
echo "BINTRAY_USER=$BINTRAY_USER
98+
BINTRAY_API_KEY=$BINTRAY_API_KEY
99+
GPG_PASSPHRASE=$GPG_PASSPHRASE"
100+
fi
101+
- run:
102+
name: Add bash environment variable to set which plugin is being released
103+
command: |
104+
if [[ $CIRCLE_TAG == v*-annotation ]]; then
105+
echo 'export PLUGIN_BEING_RELEASED="annotation"' >> $BASH_ENV
106+
source $PLUGIN_BEING_RELEASED
107+
fi
108+
if [[ $CIRCLE_TAG == v*-localization ]]; then
109+
echo 'export PLUGIN_BEING_RELEASED="localization"' >> $BASH_ENV
110+
source $PLUGIN_BEING_RELEASED
111+
fi
112+
if [[ $CIRCLE_TAG == v*-building ]]; then
113+
echo 'export PLUGIN_BEING_RELEASED="building"' >> $BASH_ENV
114+
source $PLUGIN_BEING_RELEASED
115+
fi
116+
if [[ $CIRCLE_TAG == v*-markerview ]]; then
117+
echo 'export PLUGIN_BEING_RELEASED="markerview"' >> $BASH_ENV
118+
source $PLUGIN_BEING_RELEASED
119+
fi
120+
if [[ $CIRCLE_TAG == v*-offline ]]; then
121+
echo 'export PLUGIN_BEING_RELEASED="offline"' >> $BASH_ENV
122+
source $PLUGIN_BEING_RELEASED
123+
fi
124+
if [[ $CIRCLE_TAG == v*-places ]]; then
125+
echo 'export PLUGIN_BEING_RELEASED="places"' >> $BASH_ENV
126+
source $PLUGIN_BEING_RELEASED
127+
fi
128+
if [[ $CIRCLE_TAG == v*-scalebar ]]; then
129+
echo 'export PLUGIN_BEING_RELEASED="scalebar"' >> $BASH_ENV
130+
source $PLUGIN_BEING_RELEASED
131+
fi
132+
if [[ $CIRCLE_TAG == v*-traffic ]]; then
133+
echo 'export PLUGIN_BEING_RELEASED="traffic"' >> $BASH_ENV
134+
source $PLUGIN_BEING_RELEASED
135+
fi
136+
- run:
137+
name: Print PLUGIN_BEING_RELEASED variable to confirm that right plugin is being released
138+
command: |
139+
echo $PLUGIN_BEING_RELEASED
140+
- run:
141+
name: Update the version name for the plugin being released
142+
command: |
143+
if [[ $CIRCLE_TAG == v* ]]; then
144+
sed -i -e "s/^VERSION_NAME=.*/VERSION_NAME=${CIRCLE_TAG:9}/" plugin-$PLUGIN_BEING_RELEASED/gradle.properties
105145
fi
106146
- run:
107147
name: Build Plugins SDK
108148
command: make build-release
109149
- deploy:
110-
name: Publish Plugins SDK To Maven Central
150+
name: Publish the correct plugin to Bintray
111151
command: |
112-
if [ -n "${PUBLISH_NEXUS_USERNAME}" ]; then
113-
if [ "${CIRCLE_BRANCH}" == "master" ]; then
114-
make publish
152+
if [[ $CIRCLE_BRANCH == master ]] || [[ $CIRCLE_TAG == v*- ]]; then
153+
version=$(cat $PLUGIN_BEING_RELEASED/gradle.properties | grep "VERSION_NAME")
154+
if [[ $version != *"SNAPSHOT"* ]]; then
155+
make publish-$PLUGIN_BEING_RELEASED
156+
fi
157+
else
158+
make publish-snapshot-$PLUGIN_BEING_RELEASED
115159
fi
116160
fi
117161
- store_artifacts:

gradle/artifact-settings.gradle

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

gradle/dependencies.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
kotlin : '1.3.20',
3535
dokka : '0.9.17',
3636
kotlinLint: '8.1.0'
37+
dependencyGraph: '0.4.0',
38+
bintray : '1.8.4',
39+
androidPublish : '3.6.2',
40+
artifactory: '4.9.3'
3741
]
3842

3943
dependenciesList = [
@@ -95,5 +99,8 @@
9599
kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${pluginVersion.kotlin}",
96100
dokka : "org.jetbrains.dokka:dokka-android-gradle-plugin:${pluginVersion.dokka}",
97101
kotlinLint: "org.jlleitschuh.gradle:ktlint-gradle:${pluginVersion.kotlinLint}"
102+
bintray : "com.jfrog.bintray.gradle:gradle-bintray-plugin:${pluginVersion.bintray}",
103+
androidPublishPlugin : "digital.wup:android-maven-publish:${pluginVersion.androidPublish}",
104+
artifactory: "org.jfrog.buildinfo:build-info-extractor-gradle:${pluginVersion.artifactory}"
98105
]
99106
}

gradle/gradle-bintray.gradle

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
apply plugin: 'digital.wup.android-maven-publish'
2+
apply plugin: 'maven-publish'
3+
apply plugin: 'com.jfrog.bintray'
4+
apply plugin: 'com.jfrog.artifactory'
5+
apply from: file('../gradle/artifact-settings.gradle')
6+
7+
publishing {
8+
publications {
9+
MapboxPluginPublication(MavenPublication) {
10+
from components.android
11+
groupId project.ext.mapboxArtifactGroupId
12+
artifactId project.ext.mapboxArtifactId
13+
version project.ext.versionName
14+
15+
afterEvaluate {
16+
artifact("$buildDir/outputs/aar/${project.name}-release.aar")
17+
artifact(androidSourcesJar)
18+
artifact(androidJavadocsJar)
19+
}
20+
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)
40+
}
41+
42+
}
43+
}
44+
}
45+
46+
bintray {
47+
user = mapboxBintrayUser
48+
key = mapboxBintrayApiKey
49+
publications = ['MapboxPluginPublication']
50+
pkg {
51+
repo = project.ext.mapboxBintrayRepoName
52+
name = project.ext.mapboxArtifactId
53+
userOrg = project.ext.mapboxBintrayUserOrg
54+
licenses = [project.ext.mapboxArtifactLicenseName]
55+
vcsUrl = project.ext.mapboxArtifactVcsUrl
56+
publish = false
57+
version {
58+
name = project.ext.versionName
59+
desc = project.ext.mapboxArtifactDescription
60+
released = new Date()
61+
gpg {
62+
sign = true
63+
passphrase = mapboxGpgPassphrase
64+
}
65+
mavenCentralSync {
66+
sync = false
67+
}
68+
}
69+
}
70+
}
71+
72+
artifactory {
73+
contextUrl = 'http://oss.jfrog.org'
74+
publish {
75+
repository {
76+
repoKey = 'oss-snapshot-local'
77+
username = mapboxBintrayUser
78+
password = mapboxBintrayApiKey
79+
}
80+
defaults {
81+
publications('MapboxPluginPublication')
82+
}
83+
}
84+
}
85+
86+
task androidSourcesJar(type: Jar) {
87+
classifier "sources"
88+
from android.sourceSets.main.java.srcDirs
89+
}
90+
91+
task androidJavadocs(type: Javadoc) {
92+
source = android.sourceSets.main.java.srcDirs
93+
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
94+
android.libraryVariants.all { variant ->
95+
if (variant.name == 'release') {
96+
owner.classpath += variant.javaCompile.classpath
97+
}
98+
}
99+
100+
}
101+
102+
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
103+
classifier = 'javadoc'
104+
from androidJavadocs.destinationDir
105+
}
106+
107+
tasks.withType(Javadoc) {
108+
options.addStringOption('encoding', 'UTF-8')
109+
options.addStringOption('docencoding', 'UTF-8')
110+
options.addStringOption('charset', 'UTF-8')
111+
}
112+
113+
artifacts {
114+
archives androidSourcesJar
115+
archives androidJavadocsJar
116+
}
117+
118+
afterEvaluate { project ->
119+
android.libraryVariants.all { variant ->
120+
tasks.androidJavadocs.doFirst {
121+
classpath += files(variant.javaCompile.classpath.files)
122+
}
123+
}
124+
}

0 commit comments

Comments
 (0)