summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathew Robinson <chasinglogic@gmail.com>2018-11-02 16:52:48 -0400
committerMathew Robinson <chasinglogic@gmail.com>2018-11-05 16:58:19 -0500
commitf002ff1a03af7496471c3b37d784406241163e74 (patch)
tree0ac9f62888bf807e16f4d9193f8d9c3345a8fe47
parent650d5df4c7f033da7cae1d50c3cdb43c6d1c9739 (diff)
downloadmongo-f002ff1a03af7496471c3b37d784406241163e74.tar.gz
SERVER-37912 Publish MongoDB embedded android artifacts to Maven Central
(cherry picked from commit 1fe1551c1c87dc3fb3a1d00481ea09eaf27b8aea)
-rw-r--r--etc/evergreen.yml159
-rw-r--r--src/mongo/embedded/mongo_embedded/java/aar/build.gradle95
-rw-r--r--src/mongo/embedded/mongo_embedded/java/build.gradle16
-rw-r--r--src/mongo/embedded/mongo_embedded/java/embedded-android/AndroidManifest.xml (renamed from src/mongo/embedded/mongo_embedded/java/aar/AndroidManifest.xml)0
-rw-r--r--src/mongo/embedded/mongo_embedded/java/embedded-android/build.gradle89
-rw-r--r--src/mongo/embedded/mongo_embedded/java/embedded-jar/build.gradle (renamed from src/mongo/embedded/mongo_embedded/java/jar/build.gradle)0
-rwxr-xr-x[-rw-r--r--]src/mongo/embedded/mongo_embedded/java/gradlew0
-rw-r--r--src/mongo/embedded/mongo_embedded/java/settings.gradle4
8 files changed, 203 insertions, 160 deletions
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index 4fa0a8a6ac5..ab6da39f0a1 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -1053,6 +1053,35 @@ functions:
bash buildscripts/fetch_and_build_openssl.sh "${python|python}" "${openssl_make_flags|}" "${openssl_config_flags|}"
fi
+ "setup gradle signing keys":
+ command: shell.exec
+ params:
+ silent: true
+ script: |
+ cd src/src/mongo/embedded/mongo_embedded/java
+
+ echo -n "${mongodb_mobile_release_signing_secret_key}" > mobile-release-signing-key.secret
+ echo -n "${mongodb_mobile_release_signing_public_key}" > mobile-release-signing-key.public
+
+ gpg --homedir ${workingdir}/.gnupg --allow-secret-key-import --import mobile-release-signing-key.secret
+ gpg --homedir ${workingdir}/.gnupg --import mobile-release-signing-key.public
+ # Required for gradle to pick up the keys
+ gpg --homedir ${workingdir}/.gnupg --keyring secring.gpg --export-secret-keys secring.gpg
+
+ echo -n <<EOF
+ signing.keyId=${mongodb_mobile_release_signing_keyid}
+ signing.password=${mongodb_mobile_release_signing_password}
+ signing.secretKeyRingFile=${mongodb_mobile_release_signing_secretkeyringfile}
+
+ ossrhUsername=${mongodb_mobile_ossrh_username}
+ ossrhPassword=${mongodb_mobile_ossrh_password}
+ EOF > local.properties
+
+ echo <<EOF
+ export artifactory_mobile_user=${artifactory_mobile_user}
+ export artifactory_mobile_pass=${artifactory_mobile_pass}
+ EOF > artifactory_mobile_creds.sh
+
"setup android toolchain" :
command: shell.exec
params:
@@ -1064,6 +1093,67 @@ functions:
PYTHON=$python ${compile_env|} src/buildscripts/setup-android-toolchain.sh ${android_toolchain_target_arch} ${android_toolchain_api_version}
fi
+ "build java embedded sdk":
+ command: shell.exec
+ params:
+ script: |
+ set -o errexit
+ set -o verbose
+
+ # If the android toolchain has not been setup the android sdk will not
+ # be available and we should not build the android version of mongodb
+ # embedded.
+ if [ "${setup_android_toolchain|}" = "true" ]; then
+ export ANDROID_HOME=$(pwd)/android_sdk
+
+ cd src/src/mongo/embedded/mongo_embedded/java
+
+ # TODO: Clean this up later where we can remove duplication
+ if [ ${package_type|embedded-android} = "embedded-jar" ]; then
+ tar zxvf ../../../../../../embedded-sdk-java-linux-x86-64.tgz
+ mkdir -p jniLibs/linux-x86-64
+ cp ./mongo-embedded-sdk-${version}/lib/libmongo_embedded.so jniLibs/linux-x86-64
+ rm -rf ./mongo-embedded-sdk-${version}
+
+ tar zxvf ../../../../../../embedded-sdk-java-darwin.tgz
+ mkdir -p jniLibs/darwin
+ cp ./mongo-embedded-sdk-${version}/lib/libmongo_embedded.dylib jniLibs/darwin
+ rm -rf ./mongo-embedded-sdk-${version}
+
+ ./gradlew clean :embedded-jar:build :embedded-jar:publishMavenPublicationToLocalRepository
+
+ # Is this a release?
+ echo "${version|-g}" | grep -q -- "-g"
+ if [ $? -eq 1 ]; then
+ echo "Releases disabled on master."
+ #source ./artifactory_mobile_creds.sh
+ #./gradlew --info :embedded-jar:artifactoryPublish
+ fi
+
+
+ mkdir -p ../../../../../build/mongo-embedded-sdk-${version}/java
+ cp -r embedded-jar/build/repo/* ../../../../../build/mongo-embedded-sdk-${version}/java
+ else
+ for arch in arm64-v8a armeabi-v7a x86_64 ; do
+ tar zxvf ../../../../../../embedded-sdk-android-$arch.tgz
+ mkdir -p jniLibs/$arch
+ cp ./mongo-embedded-sdk-${version}/lib/libmongo_embedded.so jniLibs/$arch
+ rm -rf ./mongo-embedded-sdk-${version}
+ done
+
+ ./gradlew clean :embedded-android:build
+ # Is this a release?
+ echo "${version|-g}" | grep -q -- "-g"
+ if [ $? -eq 1 ]; then
+ echo "Releases disabled on master."
+ #./gradlew :embedded-android:uploadArchives closeAndReleaseRepository
+ fi
+
+ mkdir -p ../../../../../build/mongo-embedded-sdk-${version}/android
+ cp -r embedded-android/build/repo/* ../../../../../build/mongo-embedded-sdk-${version}/android
+ fi
+ fi
+
"scons cache pruning" :
command: shell.exec
params:
@@ -3793,36 +3883,8 @@ tasks:
remote_file: ${project}/embedded-sdk/embedded-sdk-android-x86_64/${revision}/mongo-embedded-sdk-${version}.tgz
bucket: mciuploads
local_file: "embedded-sdk-android-x86_64.tgz"
- - command: shell.exec
- params:
- script: |
- set -o errexit
- set -o verbose
-
- if [ "${setup_android_toolchain|}" = "true" ]; then
- export ANDROID_HOME=$(pwd)/android_sdk
-
- cd src/src/mongo/embedded/mongo_embedded/java
-
- chmod +x gradlew
-
- for arch in arm64-v8a armeabi-v7a x86_64 ; do
- tar zxvf ../../../../../../embedded-sdk-android-$arch.tgz
- mkdir -p jniLibs/$arch
- cp ./mongo-embedded-sdk-${version}/lib/libmongo_embedded.so jniLibs/$arch
- rm -rf ./mongo-embedded-sdk-${version}
- done
-
- ./gradlew clean :aar:build :aar:publishMavenAarPublicationToLocalRepository
- # Is this a release?
- echo "${version|-g}" | grep -q -- "-g"
- if [ $? -eq 1 ]; then
- ./gradlew --info :aar:artifactoryPublish
- fi
-
- mkdir -p ../../../../../build/mongo-embedded-sdk-${version}/android
- cp -r aar/build/repo/* ../../../../../build/mongo-embedded-sdk-${version}/android
- fi
+ - func: "setup gradle signing keys"
+ - func: "build java embedded sdk"
- command: shell.exec
params:
script: |
@@ -3897,39 +3959,10 @@ tasks:
remote_file: ${project}/embedded-sdk/embedded-sdk-macosx-10.10/${revision}/mongo-embedded-sdk-${version}.tgz
bucket: mciuploads
local_file: "embedded-sdk-java-darwin.tgz"
- - command: shell.exec
- params:
- script: |
- set -o errexit
- set -o verbose
-
- if [ "${setup_android_toolchain|}" = "true" ]; then
- export ANDROID_HOME=$(pwd)/android_sdk
-
- cd src/src/mongo/embedded/mongo_embedded/java
-
- chmod +x gradlew
-
- tar zxvf ../../../../../../embedded-sdk-java-linux-x86-64.tgz
- mkdir -p jniLibs/linux-x86-64
- cp ./mongo-embedded-sdk-${version}/lib/libmongo_embedded.so jniLibs/linux-x86-64
- rm -rf ./mongo-embedded-sdk-${version}
-
- tar zxvf ../../../../../../embedded-sdk-java-darwin.tgz
- mkdir -p jniLibs/darwin
- cp ./mongo-embedded-sdk-${version}/lib/libmongo_embedded.dylib jniLibs/darwin
- rm -rf ./mongo-embedded-sdk-${version}
-
- ./gradlew clean :jar:build :jar:publishMavenPublicationToLocalRepository
- # Is this a release?
- echo "${version|-g}" | grep -q -- "-g"
- if [ $? -eq 1 ]; then
- ./gradlew --info :jar:artifactoryPublish
- fi
-
- mkdir -p ../../../../../build/mongo-embedded-sdk-${version}/java
- cp -r jar/build/repo/* ../../../../../build/mongo-embedded-sdk-${version}/java
- fi
+ - func: "setup gradle signing keys"
+ - func: "build java embedded sdk"
+ vars:
+ package_type: embedded-jar
- command: shell.exec
params:
script: |
diff --git a/src/mongo/embedded/mongo_embedded/java/aar/build.gradle b/src/mongo/embedded/mongo_embedded/java/aar/build.gradle
deleted file mode 100644
index a1e72615d6a..00000000000
--- a/src/mongo/embedded/mongo_embedded/java/aar/build.gradle
+++ /dev/null
@@ -1,95 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'digital.wup.android-maven-publish'
-apply plugin: 'optional-base'
-apply plugin: 'com.jfrog.artifactory'
-
-android {
- compileSdkVersion 28
-
- defaultConfig {
- minSdkVersion 21
- targetSdkVersion 28
- }
-
- buildTypes {
- release {
- minifyEnabled false
- }
- }
-
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDir '../src'
- jniLibs.srcDirs '../jniLibs'
- }
- }
-}
-
-task sourcesJar(type: Jar) {
- from android.sourceSets.main.java.srcDirs
- classifier = 'sources'
-}
-
-dependencies {
- api "net.java.dev.jna:jna:$jnaVersion@aar"
- api 'org.slf4j:slf4j-api:1.7.6', optional
-}
-
-publishing {
- publications {
- mavenAar(MavenPublication) {
- artifactId = libraryName + "-android"
-
- from components.android
- artifact sourcesJar
-
- pom {
- name = pomName
- description = pomDescription
- url = pomUrl
- licenses {
- license {
- name = pomLicenseName
- url = pomLicenseUrl
- }
- }
- scm {
- connection = "scm:" + pomScmConnection
- developerConnection = "scm:" + pomScmDevConnection
- url = pomScmUrl
- }
- }
- }
- }
-
- repositories {
- maven {
- name = 'local'
- url = "$buildDir/repo"
- }
- }
-}
-
-artifactory {
- contextUrl = "http://artifactory.corp.mongodb.com/artifactory"
- publish {
- repository {
- repoKey = 'mongodb-mobile-local'
- username = System.getenv('artifactory_mobile_user')
- password = System.getenv('artifactory_mobile_pass')
- maven = true
- }
- defaults {
- publications ('mavenAar')
- }
- }
- resolve {
- repository {
- repoKey = 'maven'
- username = System.getenv('artifactory_mobile_user')
- password = System.getenv('artifactory_mobile_pass')
- maven = true
- }
- }
-}
diff --git a/src/mongo/embedded/mongo_embedded/java/build.gradle b/src/mongo/embedded/mongo_embedded/java/build.gradle
index 4bb304dcbc9..4b0f24ced11 100644
--- a/src/mongo/embedded/mongo_embedded/java/build.gradle
+++ b/src/mongo/embedded/mongo_embedded/java/build.gradle
@@ -21,6 +21,7 @@ buildscript {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'digital.wup:android-maven-publish:3.6.2'
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:latest.release'
+ classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.12.0"
}
}
@@ -43,6 +44,15 @@ def getGitVersion() {
}
}
+File localPropsFile = file('./local.properties')
+if (localPropsFile.exists()) {
+ Properties p = new Properties()
+ p.load(new FileInputStream(localPropsFile))
+ p.each { name, value ->
+ ext[name] = value
+ }
+}
+
allprojects {
group = 'org.mongodb'
version = getGitVersion()
@@ -56,3 +66,9 @@ allprojects {
task clean(type: Delete) {
delete rootProject.buildDir
}
+
+apply plugin: 'io.codearte.nexus-staging'
+
+nexusStaging {
+ packageGroup = "org.mongodb"
+}
diff --git a/src/mongo/embedded/mongo_embedded/java/aar/AndroidManifest.xml b/src/mongo/embedded/mongo_embedded/java/embedded-android/AndroidManifest.xml
index 8d3ffd30527..8d3ffd30527 100644
--- a/src/mongo/embedded/mongo_embedded/java/aar/AndroidManifest.xml
+++ b/src/mongo/embedded/mongo_embedded/java/embedded-android/AndroidManifest.xml
diff --git a/src/mongo/embedded/mongo_embedded/java/embedded-android/build.gradle b/src/mongo/embedded/mongo_embedded/java/embedded-android/build.gradle
new file mode 100644
index 00000000000..16750646ab8
--- /dev/null
+++ b/src/mongo/embedded/mongo_embedded/java/embedded-android/build.gradle
@@ -0,0 +1,89 @@
+apply plugin: 'com.android.library'
+apply plugin: 'optional-base'
+apply plugin: 'maven'
+apply plugin: 'signing'
+
+android {
+ compileSdkVersion 28
+
+ defaultConfig {
+ minSdkVersion 21
+ targetSdkVersion 28
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ }
+ }
+
+ sourceSets {
+ main {
+ manifest.srcFile 'AndroidManifest.xml'
+ java.srcDir '../src'
+ jniLibs.srcDirs '../jniLibs'
+ }
+ }
+}
+
+task sourcesJar(type: Jar) {
+ from android.sourceSets.main.java.srcDirs
+ classifier = 'sources'
+}
+
+dependencies {
+ api "net.java.dev.jna:jna:$jnaVersion@aar"
+ api 'org.slf4j:slf4j-api:1.7.6', optional
+}
+
+artifacts {
+ archives sourcesJar
+}
+
+signing {
+ sign configurations.archives
+}
+
+uploadArchives {
+ repositories {
+ mavenDeployer {
+ beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+
+ repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
+ authentication(userName: ossrhUsername, password: ossrhPassword)
+ }
+
+ snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
+ authentication(userName: ossrhUsername, password: ossrhPassword)
+ }
+
+ pom.project {
+ name "${libraryName}-android"
+ packaging 'aar'
+ description "${pomDescription} - Android"
+ url pomUrl
+
+ scm {
+ connection "scm:${pomScmConnection}"
+ developerConnection "scm:${pomScmConnection}"
+ url pomScmUrl
+ }
+
+ licenses {
+ license {
+ name pomLicenseName
+ url pomLicenseUrl
+ }
+ }
+
+ developers {
+ developer {
+ id 'mongodb'
+ name 'MongoDB Inc.'
+ email 'build@mongodb.com'
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/mongo/embedded/mongo_embedded/java/jar/build.gradle b/src/mongo/embedded/mongo_embedded/java/embedded-jar/build.gradle
index 566770c793f..566770c793f 100644
--- a/src/mongo/embedded/mongo_embedded/java/jar/build.gradle
+++ b/src/mongo/embedded/mongo_embedded/java/embedded-jar/build.gradle
diff --git a/src/mongo/embedded/mongo_embedded/java/gradlew b/src/mongo/embedded/mongo_embedded/java/gradlew
index cccdd3d517f..cccdd3d517f 100644..100755
--- a/src/mongo/embedded/mongo_embedded/java/gradlew
+++ b/src/mongo/embedded/mongo_embedded/java/gradlew
diff --git a/src/mongo/embedded/mongo_embedded/java/settings.gradle b/src/mongo/embedded/mongo_embedded/java/settings.gradle
index 0c62f13cff1..fd39703259d 100644
--- a/src/mongo/embedded/mongo_embedded/java/settings.gradle
+++ b/src/mongo/embedded/mongo_embedded/java/settings.gradle
@@ -1,2 +1,2 @@
-include ':aar'
-include ':jar'
+include ':embedded-android'
+include ':embedded-jar'