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:
Petr Pokorny
2021-05-04 19:46:30 +02:00
committed by GitHub
parent 343cd1da65
commit dbeeb7eceb
13 changed files with 204 additions and 365 deletions

View File

@@ -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
View File

@@ -23,3 +23,6 @@
**/.idea
/platform/android/MapboxGLAndroidSDKTestApp/local.properties
/new_offline.db
*.gpg
/.vscode
/platform/android/signing-key.text

View File

@@ -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

View File

@@ -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"

View File

@@ -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/"))
}
}
}

View File

@@ -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')
}
}

View File

@@ -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}"
]
}

View File

@@ -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)
}
}
}

View File

@@ -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)
}
}
}

View File

@@ -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)
}
}
}

View 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
}

View 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')
}

View 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