diff --git a/.github/workflows/android-release.yml b/.github/workflows/android-release.yml index 0d3ac4978..e704e927b 100644 --- a/.github/workflows/android-release.yml +++ b/.github/workflows/android-release.yml @@ -175,6 +175,15 @@ jobs: # deploy to github maven repo - name: Publish package + if: ${{ false }} # temporarily disabled run: make android-maven-publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # deploy to bintray + - name: Publish to Bintray + run: make run-android-upload-to-bintray + env: + BINTRAY_USER: ${{ secrets.BINTRAY_USER }} + BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/README.md b/README.md index 73dfba040..641a45f50 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,12 @@ Beside merging in platform specific SDKs, the following changes were made compar repositories { ... maven { - url = "https://maven.pkg.github.com/maptiler/maplibre-gl-native" - credentials { - username = "maptiler" - password = "7316cac510384aaa7408b9feb49341a15ba68171" - } + url = "https://dl.bintray.com/maplibre/maplibre-gl-native" } } } ``` -> The credentials section is required because [GitHub does not support public access to maven package repository currently](https://github.community/t/download-from-github-package-registry-without-authentication/14407/63). - 2. Add the library as a dependency into your module build.gradle ```gradle diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle index 5b28d32f9..6b0c153bf 100644 --- a/platform/android/MapboxGLAndroidSDK/build.gradle +++ b/platform/android/MapboxGLAndroidSDK/build.gradle @@ -101,5 +101,5 @@ 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-gitpackages.gradle" +apply from: "${rootDir}/gradle/gradle-bintray-maplibre.gradle" apply from: "${rootDir}/gradle/jacoco-report.gradle" \ No newline at end of file diff --git a/platform/android/build.gradle b/platform/android/build.gradle index 1a368dd2b..328fc64af 100644 --- a/platform/android/build.gradle +++ b/platform/android/build.gradle @@ -23,7 +23,7 @@ allprojects { google() jcenter() // For publishing Maps SDK files to Bintray - maven { url 'https://mapbox.bintray.com/mapbox' } + // maven { url 'https://mapbox.bintray.com/mapbox' } // Snapshot repository // maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' } } diff --git a/platform/android/gradle/artifact-settings.gradle b/platform/android/gradle/artifact-settings.gradle index 260838126..07f60d758 100644 --- a/platform/android/gradle/artifact-settings.gradle +++ b/platform/android/gradle/artifact-settings.gradle @@ -13,9 +13,9 @@ ext { mapboxPackageRepository = 'https://maven.pkg.github.com/maptiler/maplibre-gl-native' versionName = project.hasProperty('VERSION_NAME') ? project.property('VERSION_NAME') : System.getenv('VERSION_NAME') - mapboxBintrayUserOrg = 'mapbox' - mapboxBintrayRepoName = 'mapbox' - mapboxBintrayPackageName = 'com.mapbox.mapboxsdk:mapbox-android-sdk' + 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') diff --git a/platform/android/gradle/gradle-bintray-maplibre.gradle b/platform/android/gradle/gradle-bintray-maplibre.gradle new file mode 100644 index 000000000..611b292ac --- /dev/null +++ b/platform/android/gradle/gradle-bintray-maplibre.gradle @@ -0,0 +1,103 @@ +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) + } + } +} + +