Files
react-native/ReactAndroid/publish.gradle
T
Nicola Corti 60869d0885 Setup gradle-nexus to automate closing and releasing staging repositories (#34970)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/34970

I'm setting up `gradle-nexus` on our build to simplify the closing and releasing of staging repositories.
As of now, you'll have to go to Sonatype UI and manually click the release button.

With this plugin, we can instruct CircleCI to do the publishing automatically for us as
part of the nightly/stable release process.

Changelog:
[Internal] [Changed] - Setup gradle-nexus to automate closing and releasing staging repositories

Reviewed By: cipolleschi

Differential Revision: D40342759

fbshipit-source-id: 72e80f4bcc80058d5a6ea562ae136a91b2aeedbb
2022-10-13 09:45:11 -07:00

83 lines
2.5 KiB
Groovy

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
apply plugin: 'maven-publish'
apply plugin: 'signing'
def isNightly = findProperty("isNightly")?.toBoolean()
def signingKey = findProperty("SIGNING_KEY")
def signingPwd = findProperty("SIGNING_PWD")
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def androidOutputUrl = "file://${reactAndroidProjectDir}/../android"
publishing {
publications {
release(MavenPublication) {
afterEvaluate {
// We do a multi variant release, so for Android libraries
// we publish `components.release`
if (plugins.hasPlugin("com.android.library")) {
from components.default
}
}
// We populate the publishing version using the project version,
// appending -SNAPSHOT if on nightly.
if (isNightly) {
version = this.version + "-SNAPSHOT"
} else {
version = this.version
}
pom {
name = "react-native"
description = "A framework for building native apps with React"
url = "https://github.com/facebook/react-native"
developers {
developer {
id = "facebook"
name = "Facebook"
}
}
licenses {
license {
name = "MIT License"
url = "https://github.com/facebook/react-native/blob/HEAD/LICENSE"
distribution = "repo"
}
}
scm {
url = "https://github.com/facebook/react-native.git"
connection = "scm:git:https://github.com/facebook/react-native.git"
developerConnection = "scm:git:git@github.com:facebook/react-native.git"
}
}
}
}
repositories {
maven {
name = "npm"
url = androidOutputUrl
}
}
if (signingKey && signingPwd) {
logger.info("PGP Key found - Signing enabled")
signing {
useInMemoryPgpKeys(signingKey, signingPwd)
sign(publishing.publications.release)
}
} else {
logger.info("Signing disabled as the PGP key was not found")
}
}