Setup logic to publish the Godot Android library to MavenCentral

(cherry picked from commit a2bf47de2b)
This commit is contained in:
Fredia Huya-Kouadio 2022-03-14 09:19:04 -07:00 committed by Rémi Verschelde
parent 1a300503c6
commit b8178a7f0a
5 changed files with 146 additions and 3 deletions

View file

@ -0,0 +1,74 @@
apply plugin: 'maven-publish'
apply plugin: 'signing'
group = ossrhGroupId
version = PUBLISH_VERSION
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
// The coordinates of the library, being set from variables that
// we'll set up later
groupId ossrhGroupId
artifactId PUBLISH_ARTIFACT_ID
version PUBLISH_VERSION
// Two artifacts, the `aar` (or `jar`) and the sources
if (project.plugins.findPlugin("com.android.library")) {
from components.release
} else {
from components.java
}
// Mostly self-explanatory metadata
pom {
name = PUBLISH_ARTIFACT_ID
description = 'Godot Engine Android Library'
url = 'https://godotengine.org/'
licenses {
license {
name = 'MIT License'
url = 'https://github.com/godotengine/godot/blob/master/LICENSE.txt'
}
}
developers {
developer {
id = 'm4gr3d'
name = 'Fredia Huya-Kouadio'
email = 'fhuyakou@gmail.com'
}
developer {
id = 'reduz'
name = 'Juan Linietsky'
email = 'reduzio@gmail.com'
}
developer {
id = 'akien-mga'
name = 'Rémi Verschelde'
email = 'rverschelde@gmail.com'
}
// Add all other devs here...
}
// Version control info - if you're using GitHub, follow the
// format as seen here
scm {
connection = 'scm:git:github.com/godotengine/godot.git'
developerConnection = 'scm:git:ssh://github.com/godotengine/godot.git'
url = 'https://github.com/godotengine/godot/tree/master'
}
}
}
}
}
}
signing {
useInMemoryPgpKeys(
rootProject.ext["signing.keyId"],
rootProject.ext["signing.key"],
rootProject.ext["signing.password"],
)
sign publishing.publications
}

View file

@ -0,0 +1,39 @@
// Create variables with empty default values
ext["signing.keyId"] = ''
ext["signing.password"] = ''
ext["signing.key"] = ''
ext["ossrhGroupId"] = ''
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["ossrhGroupId"] = System.getenv('OSSRH_GROUP_ID')
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')
ext["signing.key"] = System.getenv('SIGNING_KEY')
}
// 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/"))
}
}
}