Migrate from bintray (#77)
* Bug fixes & cleanup * Ignoring private files * Bug fixes found during testing + added script to generate pgp key * Added step for closing and releasing staging repository * Update build.gradle Disabling test coverage due to timeouts
This commit is contained in:
22
.github/workflows/android-release.yml
vendored
22
.github/workflows/android-release.yml
vendored
@@ -179,16 +179,18 @@ jobs:
|
||||
rm -f ${{ steps.prepare_release.outputs.release_notes }}
|
||||
shell: bash
|
||||
|
||||
# deploy to github maven repo
|
||||
- name: Publish package
|
||||
run: make android-maven-publish
|
||||
- name: Prepare MavenCentral release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GPG_KEY_CONTENTS: ${{ secrets.GPG_KEY_CONTENTS }}
|
||||
run: |
|
||||
echo '$GPG_KEY_CONTENTS' | base64 -d > signing-key.gpg
|
||||
shell: bash
|
||||
|
||||
# deploy to bintray
|
||||
- name: Publish to Bintray
|
||||
run: make run-android-upload-to-bintray
|
||||
- name: Publish to MavenCentral
|
||||
run: make run-android-publish
|
||||
env:
|
||||
BINTRAY_USER: ${{ secrets.BINTRAY_USER }}
|
||||
BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }}
|
||||
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
|
||||
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
||||
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
|
||||
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
|
||||
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -23,3 +23,6 @@
|
||||
**/.idea
|
||||
/platform/android/MapboxGLAndroidSDKTestApp/local.properties
|
||||
/new_offline.db
|
||||
*.gpg
|
||||
/.vscode
|
||||
/platform/android/signing-key.text
|
||||
|
||||
@@ -47,6 +47,7 @@ MBGL_ANDROID_STL ?= c++_static
|
||||
SOCKET_TIMEOUT = 360000
|
||||
CONNECTION_TIMEOUT = 360000
|
||||
MBGL_ANDROID_GRADLE = ./gradlew --parallel --max-workers=$(JOBS) -Pmapbox.buildtype=$(buildtype) -Pmapbox.stl=$(MBGL_ANDROID_STL) -Dorg.gradle.internal.http.socketTimeout=$(SOCKET_TIMEOUT) -Dorg.gradle.internal.http.connectionTimeout=$(CONNECTION_TIMEOUT)
|
||||
MBGL_ANDROID_GRADLE_SINGLE_JOB = ./gradlew --parallel --max-workers=1 -Pmapbox.buildtype=$(buildtype) -Pmapbox.stl=$(MBGL_ANDROID_STL) -Dorg.gradle.internal.http.socketTimeout=$(SOCKET_TIMEOUT) -Dorg.gradle.internal.http.connectionTimeout=$(CONNECTION_TIMEOUT)
|
||||
|
||||
# Lists all devices, and extracts the identifiers, then obtains the ABI for every one.
|
||||
# Some devices return \r\n, so we'll have to remove the carriage return before concatenating.
|
||||
@@ -248,20 +249,10 @@ android-ui-test: gradle/configuration.gradle
|
||||
run-android-test-app-center:
|
||||
appcenter test run espresso --app "Mapbox-mobile/Maps-sdk" --devices "Mapbox-mobile/${devices}" --app-path MapboxGLAndroidSDKTestApp/build/outputs/apk/debug/MapboxGLAndroidSDKTestApp-debug.apk --test-series "master" --locale "en_US" --build-dir MapboxGLAndroidSDKTestApp/build/outputs/apk/androidTest/debug --token ${APPCENTER_ACCESS_TOKEN}
|
||||
|
||||
# Uploads the compiled Android SDK to Bintray
|
||||
.PHONY: run-android-upload-to-bintray
|
||||
run-android-upload-to-bintray: gradle/configuration.gradle
|
||||
$(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDK:bintrayUpload
|
||||
|
||||
# Uploads the compiled Android SDK SNAPSHOT to oss.jfrog.org
|
||||
.PHONY: run-android-upload-to-artifactory
|
||||
run-android-upload-to-artifactory: gradle/configuration.gradle
|
||||
$(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDK:artifactoryPublish
|
||||
|
||||
# Uploads the compiled Android SDK to maven github package registry
|
||||
.PHONY: android-maven-publish
|
||||
android-maven-publish: gradle/configuration.gradle
|
||||
$(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDK:publish
|
||||
# Uploads the compiled Android SDK to Maven Central Staging
|
||||
.PHONY: run-android-publish
|
||||
run-android-publish: gradle/configuration.gradle
|
||||
$(MBGL_ANDROID_GRADLE_SINGLE_JOB) -Pmapbox.abis=all :MapboxGLAndroidSDK:publishReleasePublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository
|
||||
|
||||
# Dump system graphics information for the test app
|
||||
.PHONY: android-gfxinfo
|
||||
@@ -339,6 +330,11 @@ run-android-nitpick: android-update-vendor
|
||||
android-graph: gradle/configuration.gradle
|
||||
$(MBGL_ANDROID_GRADLE) -Pmapbox.abis=none :MapboxGLAndroidSDK:generateDependencyGraphMapboxLibraries
|
||||
|
||||
# Lists tasks
|
||||
.PHONY: list-tasks
|
||||
list-tasks: gradle/configuration.gradle
|
||||
$(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all tasks
|
||||
|
||||
#### Miscellaneous targets #####################################################
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
@@ -99,11 +99,12 @@ configurations {
|
||||
all*.exclude group: 'commons-logging', module: 'commons-logging'
|
||||
all*.exclude group: 'commons-collections', module: 'commons-collections'
|
||||
}
|
||||
|
||||
apply from: "${rootDir}/gradle/gradle-javadoc.gradle"
|
||||
apply from: "${rootDir}/gradle/gradle-checkstyle.gradle"
|
||||
apply from: "${rootDir}/gradle/gradle-dependencies-graph.gradle"
|
||||
apply from: "${rootDir}/gradle/gradle-update-vendor-modules.gradle"
|
||||
apply from: "${rootDir}/gradle/android-nitpick.gradle"
|
||||
apply from: "${rootDir}/gradle/gradle-bintray-maplibre.gradle"
|
||||
apply from: "${rootDir}/gradle/gradle-publish.gradle"
|
||||
// Disabled to prevent timeouts
|
||||
// apply from: "${rootDir}/gradle/jacoco-report.gradle"
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
apply plugin: 'io.github.gradle-nexus.publish-plugin'
|
||||
|
||||
buildscript {
|
||||
apply from: "${rootDir}/gradle/dependencies.gradle"
|
||||
|
||||
repositories {
|
||||
maven { url "https://plugins.gradle.org/m2/" }
|
||||
mavenCentral()
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
@@ -9,11 +13,9 @@ buildscript {
|
||||
classpath 'com.android.tools.build:gradle:3.6.3'
|
||||
classpath dependenciesList.licensesPlugin
|
||||
classpath dependenciesList.kotlinPlugin
|
||||
classpath dependenciesList.bintrayPlugin
|
||||
classpath dependenciesList.artifactoryPlugin
|
||||
classpath dependenciesList.androidPublishPlugin
|
||||
classpath dependenciesList.jacocoPlugin
|
||||
classpath dependenciesList.mapboxSdkVersions
|
||||
classpath dependenciesList.gradleNexus
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,14 +24,24 @@ allprojects {
|
||||
mavenCentral()
|
||||
google()
|
||||
jcenter()
|
||||
// For publishing Maps SDK files to Bintray
|
||||
// maven { url 'https://mapbox.bintray.com/mapbox' }
|
||||
// Snapshot repository
|
||||
// maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
|
||||
}
|
||||
apply from: "${rootDir}/gradle/ktlint.gradle"
|
||||
}
|
||||
|
||||
subprojects {
|
||||
apply from: "${rootDir}/gradle/dependencies.gradle"
|
||||
}
|
||||
|
||||
apply from: "${rootDir}/gradle/publish-root.gradle"
|
||||
// Set up Sonatype repository
|
||||
nexusPublishing {
|
||||
repositories {
|
||||
sonatype {
|
||||
stagingProfileId = sonatypeStagingProfileId
|
||||
username = ossrhUsername
|
||||
password = ossrhPassword
|
||||
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
|
||||
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +1,13 @@
|
||||
ext {
|
||||
mapboxArtifactGroupId = 'org.maplibre.gl'
|
||||
mapboxArtifactId = 'android-sdk'
|
||||
mapboxArtifactTitle = 'MapLibre Maps SDK for Android'
|
||||
mapboxArtifactDescription = 'MapLibre Maps SDK for Android'
|
||||
mapboxDeveloperName = 'MapLibre'
|
||||
mapboxDeveloperId = 'maplibre'
|
||||
mapboxArtifactUrl = 'https://github.com/maplibre/maplibre-gl-native'
|
||||
mapboxArtifactVcsUrl = 'https://github.com/maplibre/maplibre-gl-native.git'
|
||||
mapboxArtifactScmUrl = 'scm:git@github.com:maplibre/maplibre-gl-native.git'
|
||||
mapboxArtifactLicenseName = 'BSD'
|
||||
mapboxArtifactLicenseUrl = 'https://opensource.org/licenses/BSD-2-Clause'
|
||||
mapboxPackageRepository = 'https://maven.pkg.github.com/maptiler/maplibre-gl-native'
|
||||
mapLibreArtifactGroupId = 'org.maplibre.gl'
|
||||
mapLibreArtifactId = 'android-sdk'
|
||||
mapLibreArtifactTitle = 'MapLibre Maps SDK for Android'
|
||||
mapLibreArtifactDescription = 'MapLibre Maps SDK for Android'
|
||||
mapLibreDeveloperName = 'MapLibre'
|
||||
mapLibreDeveloperId = 'maplibre'
|
||||
mapLibreArtifactUrl = 'https://github.com/maplibre/maplibre-gl-native'
|
||||
mapLibreArtifactScmUrl = 'scm:git@github.com:maplibre/maplibre-gl-native.git'
|
||||
mapLibreArtifactLicenseName = 'BSD'
|
||||
mapLibreArtifactLicenseUrl = 'https://opensource.org/licenses/BSD-2-Clause'
|
||||
versionName = project.hasProperty('VERSION_NAME') ? project.property('VERSION_NAME') : System.getenv('VERSION_NAME')
|
||||
|
||||
mapboxBintrayUserOrg = 'maplibre'
|
||||
mapboxBintrayRepoName = 'maplibre-gl-native'
|
||||
mapboxBintrayPackageName = 'org.maplibre.gl:android-sdk'
|
||||
mapboxBintrayUser = project.hasProperty('BINTRAY_USER') ? project.property('BINTRAY_USER') : System.getenv('BINTRAY_USER')
|
||||
mapboxBintrayApiKey = project.hasProperty('BINTRAY_API_KEY') ? project.property('BINTRAY_API_KEY') : System.getenv('BINTRAY_API_KEY')
|
||||
mapboxGpgPassphrase = project.hasProperty('GPG_PASSPHRASE') ? project.property('GPG_PASSPHRASE') : System.getenv('GPG_PASSPHRASE')
|
||||
}
|
||||
}
|
||||
@@ -29,9 +29,6 @@ ext {
|
||||
okhttp : '3.12.3',
|
||||
kotlin : '1.3.72',
|
||||
licenses : '0.8.80',
|
||||
bintray : '1.8.5',
|
||||
artifactory : '4.15.2',
|
||||
androidPublish : '3.6.2',
|
||||
lint : '26.4.2',
|
||||
gms : '16.0.0',
|
||||
jacoco : '0.8.5',
|
||||
@@ -39,7 +36,8 @@ ext {
|
||||
ktlint : '0.40.0',
|
||||
commonsIO : '2.6',
|
||||
mapboxSdkVersions: '1.0.1',
|
||||
assertj : "3.11.1"
|
||||
assertj : "3.11.1",
|
||||
gradleNexus : "1.1.0"
|
||||
]
|
||||
|
||||
dependenciesList = [
|
||||
@@ -78,9 +76,6 @@ ext {
|
||||
kotlinLib : "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${versions.kotlin}",
|
||||
kotlinPlugin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}",
|
||||
licensesPlugin : "com.jaredsburrows:gradle-license-plugin:${versions.licenses}",
|
||||
bintrayPlugin : "com.jfrog.bintray.gradle:gradle-bintray-plugin:${versions.bintray}",
|
||||
artifactoryPlugin : "org.jfrog.buildinfo:build-info-extractor-gradle:${versions.artifactory}",
|
||||
androidPublishPlugin : "digital.wup:android-maven-publish:${versions.androidPublish}",
|
||||
jacocoPlugin : "org.jacoco:org.jacoco.core:${versions.jacoco}",
|
||||
|
||||
lint : "com.android.tools.lint:lint:${versions.lint}",
|
||||
@@ -88,6 +83,8 @@ ext {
|
||||
lintChecks : "com.android.tools.lint:lint-checks:${versions.lint}",
|
||||
lintTests : "com.android.tools.lint:lint-tests:${versions.lint}",
|
||||
ktlint : "com.pinterest:ktlint:${versions.ktlint}",
|
||||
mapboxSdkVersions : "com.mapbox.mapboxsdk:mapbox-android-sdk-versions:${versions.mapboxSdkVersions}"
|
||||
mapboxSdkVersions : "com.mapbox.mapboxsdk:mapbox-android-sdk-versions:${versions.mapboxSdkVersions}",
|
||||
|
||||
gradleNexus : "io.github.gradle-nexus:publish-plugin:${versions.gradleNexus}"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
apply plugin: 'digital.wup.android-maven-publish'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'com.jfrog.bintray'
|
||||
apply from: file('../gradle/artifact-settings.gradle')
|
||||
|
||||
version = project.ext.versionName
|
||||
group = project.ext.mapboxArtifactGroupId
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
MapboxMapsSdkPublication(MavenPublication) {
|
||||
from components.android
|
||||
groupId this.group
|
||||
artifactId project.ext.mapboxArtifactId
|
||||
version this.version
|
||||
|
||||
afterEvaluate {
|
||||
artifact(androidSourcesJar)
|
||||
artifact(androidJavadocsJar)
|
||||
}
|
||||
|
||||
pom.withXml {
|
||||
final mainNode = asNode()
|
||||
mainNode.appendNode('name', project.ext.mapboxArtifactTitle)
|
||||
mainNode.appendNode('description', project.ext.mapboxArtifactTitle)
|
||||
mainNode.appendNode('url', project.ext.mapboxArtifactUrl)
|
||||
|
||||
final licenseNode = mainNode.appendNode('licenses').appendNode('license')
|
||||
licenseNode.appendNode('name', project.ext.mapboxArtifactLicenseName)
|
||||
licenseNode.appendNode('url', project.ext.mapboxArtifactLicenseUrl)
|
||||
licenseNode.appendNode('distribution', "repo")
|
||||
|
||||
final developerNode = mainNode.appendNode('developers').appendNode('developer')
|
||||
developerNode.appendNode('id', project.ext.mapboxDeveloperId)
|
||||
developerNode.appendNode('name', project.ext.mapboxDeveloperName)
|
||||
|
||||
final scmNode = mainNode.appendNode("scm")
|
||||
scmNode.appendNode("connection", project.ext.mapboxArtifactScmUrl)
|
||||
scmNode.appendNode("developerConnection", project.ext.mapboxArtifactScmUrl)
|
||||
scmNode.appendNode("url", project.ext.mapboxArtifactUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bintray {
|
||||
user = mapboxBintrayUser
|
||||
key = mapboxBintrayApiKey
|
||||
publications('MapboxMapsSdkPublication')
|
||||
publish = true
|
||||
override = true
|
||||
pkg {
|
||||
repo = project.ext.mapboxBintrayRepoName
|
||||
name = project.ext.mapboxBintrayPackageName
|
||||
userOrg = project.ext.mapboxBintrayUserOrg
|
||||
licenses = [project.ext.mapboxArtifactLicenseName]
|
||||
vcsUrl = project.ext.mapboxArtifactVcsUrl
|
||||
version {
|
||||
name = project.ext.versionName
|
||||
desc = project.ext.mapboxArtifactDescription
|
||||
released = new Date()
|
||||
gpg {
|
||||
sign = true
|
||||
passphrase = mapboxGpgPassphrase
|
||||
}
|
||||
mavenCentralSync {
|
||||
sync = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task androidJavadocs(type: Javadoc) {
|
||||
source = android.sourceSets.main.java.sourceFiles
|
||||
classpath = files(android.bootClasspath)
|
||||
failOnError = false
|
||||
}
|
||||
|
||||
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
||||
classifier = 'javadoc'
|
||||
from androidJavadocs.destinationDir
|
||||
}
|
||||
|
||||
task androidSourcesJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
from android.sourceSets.main.java.sourceFiles
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc) {
|
||||
options.addStringOption('encoding', 'UTF-8')
|
||||
options.addStringOption('docencoding', 'UTF-8')
|
||||
options.addStringOption('charset', 'UTF-8')
|
||||
}
|
||||
|
||||
afterEvaluate { project ->
|
||||
android.libraryVariants.all { variant ->
|
||||
tasks.androidJavadocs.doFirst {
|
||||
classpath += files(variant.javaCompile.classpath.files)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
apply plugin: 'digital.wup.android-maven-publish'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'com.jfrog.bintray'
|
||||
apply plugin: 'com.jfrog.artifactory'
|
||||
apply from: file('../gradle/artifact-settings.gradle')
|
||||
|
||||
version = project.ext.versionName
|
||||
group = project.ext.mapboxArtifactGroupId
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
MapboxMapsSdkPublication(MavenPublication) {
|
||||
from components.android
|
||||
groupId this.group
|
||||
artifactId project.ext.mapboxArtifactId
|
||||
version this.version
|
||||
|
||||
afterEvaluate {
|
||||
artifact(androidSourcesJar)
|
||||
artifact(androidJavadocsJar)
|
||||
}
|
||||
|
||||
pom.withXml {
|
||||
final mainNode = asNode()
|
||||
mainNode.appendNode('name', project.ext.mapboxArtifactTitle)
|
||||
mainNode.appendNode('description', project.ext.mapboxArtifactTitle)
|
||||
mainNode.appendNode('url', project.ext.mapboxArtifactUrl)
|
||||
|
||||
final licenseNode = mainNode.appendNode('licenses').appendNode('license')
|
||||
licenseNode.appendNode('name', project.ext.mapboxArtifactLicenseName)
|
||||
licenseNode.appendNode('url', project.ext.mapboxArtifactLicenseUrl)
|
||||
licenseNode.appendNode('distribution', "repo")
|
||||
|
||||
final developerNode = mainNode.appendNode('developers').appendNode('developer')
|
||||
developerNode.appendNode('id', project.ext.mapboxDeveloperId)
|
||||
developerNode.appendNode('name', project.ext.mapboxDeveloperName)
|
||||
|
||||
final scmNode = mainNode.appendNode("scm")
|
||||
scmNode.appendNode("connection", project.ext.mapboxArtifactScmUrl)
|
||||
scmNode.appendNode("developerConnection", project.ext.mapboxArtifactScmUrl)
|
||||
scmNode.appendNode("url", project.ext.mapboxArtifactUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bintray {
|
||||
user = mapboxBintrayUser
|
||||
key = mapboxBintrayApiKey
|
||||
publications('MapboxMapsSdkPublication')
|
||||
pkg {
|
||||
repo = project.ext.mapboxBintrayRepoName
|
||||
name = project.ext.mapboxBintrayPackageName
|
||||
userOrg = project.ext.mapboxBintrayUserOrg
|
||||
licenses = [project.ext.mapboxArtifactLicenseName]
|
||||
vcsUrl = project.ext.mapboxArtifactVcsUrl
|
||||
publish = false
|
||||
version {
|
||||
name = project.ext.versionName
|
||||
desc = project.ext.mapboxArtifactDescription
|
||||
released = new Date()
|
||||
gpg {
|
||||
sign = true
|
||||
passphrase = mapboxGpgPassphrase
|
||||
}
|
||||
mavenCentralSync {
|
||||
sync = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
artifactory {
|
||||
contextUrl = 'http://oss.jfrog.org'
|
||||
publish {
|
||||
repository {
|
||||
repoKey = 'oss-snapshot-local'
|
||||
username = mapboxBintrayUser
|
||||
password = mapboxBintrayApiKey
|
||||
}
|
||||
defaults {
|
||||
publications('MapboxMapsSdkPublication')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task androidJavadocs(type: Javadoc) {
|
||||
source = android.sourceSets.main.java.sourceFiles
|
||||
classpath = files(android.bootClasspath)
|
||||
failOnError = false
|
||||
}
|
||||
|
||||
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
||||
classifier = 'javadoc'
|
||||
from androidJavadocs.destinationDir
|
||||
}
|
||||
|
||||
task androidSourcesJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
from android.sourceSets.main.java.sourceFiles
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc) {
|
||||
options.addStringOption('encoding', 'UTF-8')
|
||||
options.addStringOption('docencoding', 'UTF-8')
|
||||
options.addStringOption('charset', 'UTF-8')
|
||||
}
|
||||
|
||||
afterEvaluate { project ->
|
||||
android.libraryVariants.all { variant ->
|
||||
tasks.androidJavadocs.doFirst {
|
||||
classpath += files(variant.javaCompile.classpath.files)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
apply plugin: 'digital.wup.android-maven-publish'
|
||||
apply plugin: 'maven-publish'
|
||||
apply from: file('../gradle/artifact-settings.gradle')
|
||||
|
||||
version = project.ext.versionName
|
||||
group = project.ext.mapboxArtifactGroupId
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
MapboxMapsSdkPublication(MavenPublication) {
|
||||
from components.android
|
||||
groupId this.group
|
||||
artifactId project.ext.mapboxArtifactId
|
||||
version this.version
|
||||
|
||||
afterEvaluate {
|
||||
artifact(androidSourcesJar)
|
||||
artifact(androidJavadocsJar)
|
||||
}
|
||||
|
||||
pom.withXml {
|
||||
final mainNode = asNode()
|
||||
mainNode.appendNode('name', project.ext.mapboxArtifactTitle)
|
||||
mainNode.appendNode('description', project.ext.mapboxArtifactTitle)
|
||||
mainNode.appendNode('url', project.ext.mapboxArtifactUrl)
|
||||
|
||||
final licenseNode = mainNode.appendNode('licenses').appendNode('license')
|
||||
licenseNode.appendNode('name', project.ext.mapboxArtifactLicenseName)
|
||||
licenseNode.appendNode('url', project.ext.mapboxArtifactLicenseUrl)
|
||||
licenseNode.appendNode('distribution', "repo")
|
||||
|
||||
final developerNode = mainNode.appendNode('developers').appendNode('developer')
|
||||
developerNode.appendNode('id', project.ext.mapboxDeveloperId)
|
||||
developerNode.appendNode('name', project.ext.mapboxDeveloperName)
|
||||
|
||||
final scmNode = mainNode.appendNode("scm")
|
||||
scmNode.appendNode("connection", project.ext.mapboxArtifactScmUrl)
|
||||
scmNode.appendNode("developerConnection", project.ext.mapboxArtifactScmUrl)
|
||||
scmNode.appendNode("url", project.ext.mapboxArtifactUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "GitHubPackages"
|
||||
url = project.ext.mapboxPackageRepository
|
||||
credentials {
|
||||
username = System.getenv("GITHUB_ACTOR")
|
||||
password = System.getenv("GITHUB_TOKEN")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task androidJavadocs(type: Javadoc) {
|
||||
source = android.sourceSets.main.java.sourceFiles
|
||||
classpath = files(android.bootClasspath)
|
||||
failOnError = false
|
||||
}
|
||||
|
||||
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
||||
classifier = 'javadoc'
|
||||
from androidJavadocs.destinationDir
|
||||
}
|
||||
|
||||
task androidSourcesJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
from android.sourceSets.main.java.sourceFiles
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc) {
|
||||
options.addStringOption('encoding', 'UTF-8')
|
||||
options.addStringOption('docencoding', 'UTF-8')
|
||||
options.addStringOption('charset', 'UTF-8')
|
||||
}
|
||||
|
||||
afterEvaluate { project ->
|
||||
android.libraryVariants.all { variant ->
|
||||
tasks.androidJavadocs.doFirst {
|
||||
classpath += files(variant.javaCompile.classpath.files)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
91
platform/android/gradle/gradle-publish.gradle
Normal file
91
platform/android/gradle/gradle-publish.gradle
Normal file
@@ -0,0 +1,91 @@
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'signing'
|
||||
apply from: "${rootDir}/gradle/artifact-settings.gradle"
|
||||
apply from: "${rootDir}/gradle/publish-root.gradle"
|
||||
|
||||
task androidJavadocs(type: Javadoc) {
|
||||
source = android.sourceSets.main.java.sourceFiles
|
||||
classpath = files(android.bootClasspath)
|
||||
failOnError = false
|
||||
}
|
||||
|
||||
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
||||
archiveClassifier.set('javadoc')
|
||||
from androidJavadocs.destinationDir
|
||||
}
|
||||
|
||||
task androidSourcesJar(type: Jar) {
|
||||
archiveClassifier.set('sources')
|
||||
from android.sourceSets.main.java.sourceFiles
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc) {
|
||||
options.addStringOption('encoding', 'UTF-8')
|
||||
options.addStringOption('docencoding', 'UTF-8')
|
||||
options.addStringOption('charset', 'UTF-8')
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives androidSourcesJar
|
||||
archives androidJavadocsJar
|
||||
}
|
||||
|
||||
|
||||
project.logger.lifecycle(ext["versionName"])
|
||||
|
||||
version = project.ext.versionName
|
||||
group = project.ext.mapLibreArtifactGroupId
|
||||
|
||||
afterEvaluate {
|
||||
publishing {
|
||||
publications {
|
||||
release(MavenPublication) {
|
||||
groupId this.group
|
||||
artifactId project.ext.mapLibreArtifactId
|
||||
version this.version
|
||||
|
||||
from components.release
|
||||
|
||||
artifact androidSourcesJar
|
||||
artifact androidJavadocsJar
|
||||
|
||||
pom {
|
||||
name = project.ext.mapLibreArtifactTitle
|
||||
description = project.ext.mapLibreArtifactTitle
|
||||
url = project.ext.mapLibreArtifactUrl
|
||||
licenses {
|
||||
license {
|
||||
name = project.ext.mapLibreArtifactLicenseName
|
||||
url = project.ext.mapLibreArtifactLicenseUrl
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id = project.ext.mapLibreDeveloperId
|
||||
name = project.ext.mapLibreDeveloperName
|
||||
email = 'maplibre@maplibre.org'
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection = project.ext.mapLibreArtifactScmUrl
|
||||
developerConnection = project.ext.mapLibreArtifactScmUrl
|
||||
url = project.ext.mapLibreArtifactUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate { project ->
|
||||
android.libraryVariants.all { variant ->
|
||||
tasks.androidJavadocs.doFirst {
|
||||
classpath += files(variant.javaCompile.classpath.files)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
sign publishing.publications
|
||||
}
|
||||
|
||||
21
platform/android/gradle/publish-root.gradle
Normal file
21
platform/android/gradle/publish-root.gradle
Normal file
@@ -0,0 +1,21 @@
|
||||
ext["signing.keyId"] = ''
|
||||
ext["signing.password"] = ''
|
||||
ext["signing.secretKeyRingFile"] = "${projectDir}/../signing-key.gpg"
|
||||
ext["ossrhUsername"] = ''
|
||||
ext["ossrhPassword"] = ''
|
||||
ext["sonatypeStagingProfileId"] = ''
|
||||
|
||||
File secretPropsFile = project.rootProject.file('local.properties')
|
||||
if (secretPropsFile.exists()) {
|
||||
// Read local.properties file first if it exists
|
||||
Properties p = new Properties()
|
||||
new FileInputStream(secretPropsFile).withCloseable { is -> p.load(is) }
|
||||
p.each { name, value -> ext[name] = value }
|
||||
} else {
|
||||
// Use system environment variables
|
||||
ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME')
|
||||
ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD')
|
||||
ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID')
|
||||
ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID')
|
||||
ext["signing.password"] = System.getenv('SIGNING_PASSWORD')
|
||||
}
|
||||
30
platform/android/scripts/create-signing-key.sh
Executable file
30
platform/android/scripts/create-signing-key.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
set -u
|
||||
|
||||
cat >foo <<EOF
|
||||
%echo Generating a basic OpenPGP key
|
||||
Key-Type: RSA
|
||||
Key-Length: 4096
|
||||
Subkey-Type: RSA
|
||||
Subkey-Length: 4096
|
||||
Name-Real: Petr Pokorny
|
||||
Name-Comment: MapLibre publish
|
||||
Name-Email: petr.pokorny@maptiler.com
|
||||
Expire-Date: 0
|
||||
Passphrase: < Put your password here >
|
||||
# Do a commit here, so that we can later print "done" :-)
|
||||
%commit
|
||||
%echo done
|
||||
EOF
|
||||
|
||||
gpg --batch --generate-key foo
|
||||
rm foo
|
||||
gpg --list-secret-keys
|
||||
|
||||
# gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --send-keys < your key here - i.e. 6BCC07D1, last 8 characters >
|
||||
# gpg --keyserver hkps://keys.openpgp.org --send-key 6BCC07D1
|
||||
# gpg --export-secret-keys < your key here - i.e. 6BCC07D1, last 8 characters > /Volumes/Src/src/MapTiler/Native/maplibre-gl-native/platform/android/signing-key.gpg
|
||||
# base64 /Volumes/Src/src/MapTiler/Native/maplibre-gl-native/platform/android/signing-key.gpg > /Volumes/Src/src/MapTiler/Native/maplibre-gl-native/platform/android/signing-key.text
|
||||
Reference in New Issue
Block a user