From 0f80c0a5fd2d8dda1b4f796e24c45da7e9c826a2 Mon Sep 17 00:00:00 2001 From: Nakul Sabharwal Date: Tue, 25 Sep 2018 19:35:28 +0530 Subject: [PATCH 1/2] restructured gradle publishing tasks for release automation pipeline. --- build.gradle | 76 ++++++++++++++++++++++++++++++++++++++++++----- gradle.properties | 11 +++---- 2 files changed, 72 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index b2de2ce3022..1bd5f4b2dc8 100644 --- a/build.gradle +++ b/build.gradle @@ -72,11 +72,29 @@ publishing { } } - mavenJava(MavenPublication) { + mavenCentralSnapshot(MavenPublication) { customizePom(pom) groupId 'com.microsoft.graph' artifactId 'microsoft-graph' - version "${mavenMajorVersion}.${mavenMinorVersion}.${mavenPatchVersion}${mavenArtifactSuffix}" + version "${mavenMajorVersion}.${mavenMinorVersion}.${mavenPatchVersion}${mavenCentralSnapshotArtifactSuffix}" + from components.java + pom.withXml { + def pomFile = file("${project.buildDir}/generated-pom.xml") + writeTo(pomFile) + } + artifact(sourceJar) { + classifier = 'sources' + } + artifact(javadocJar) { + classifier = 'javadoc' + } + } + + mavenCentralRelease(MavenPublication) { + customizePom(pom) + groupId 'com.microsoft.graph' + artifactId 'microsoft-graph' + version "${mavenMajorVersion}.${mavenMinorVersion}.${mavenPatchVersion}" from components.java pom.withXml { def pomFile = file("${project.buildDir}/generated-pom.xml") @@ -109,10 +127,38 @@ publishing { } repositories { maven { - url = project.property('mavenCentralUploadUrl') + url = project.property('mavenCentralSnapshotUrl') + credentials { - username = project.property('sonatypeUsername') - password = project.property('sonatypePassword') + if (project.rootProject.file('local.properties').exists()) { + + Properties properties = new Properties() + + properties.load(project.rootProject.file('local.properties').newDataInputStream()) + + username = properties.getProperty('sonatypeUsername') + + password = properties.getProperty('sonatypePassword') + + } + } + } + + maven { + url = project.property('mavenCentralReleaseUrl') + + credentials { + if (project.rootProject.file('local.properties').exists()) { + + Properties properties = new Properties() + + properties.load(project.rootProject.file('local.properties').newDataInputStream()) + + username = properties.getProperty('sonatypeUsername') + + password = properties.getProperty('sonatypePassword') + + } } } } @@ -170,6 +216,8 @@ uploadArchives { } repository (url: project.mavenRepoUrl) { + + url = url + "/" + getVersionName() authentication( @@ -246,14 +294,26 @@ def customizePom(pom) { } } +gradle.taskGraph.whenReady { taskGraph -> + if (taskGraph.allTasks.any { it instanceof Sign }) { + if (project.rootProject.file('local.properties').exists()) { + Properties properties = new Properties() + properties.load(project.rootProject.file('local.properties').newDataInputStream()) + allprojects { ext."signing.keyId" = properties.getProperty('signing.keyId') } + allprojects { ext."signing.secretKeyRingFile" = properties.getProperty('signing.secretKeyRingFile') } + allprojects { ext."signing.password" = properties.getProperty('signing.password') } + } + } +} + model { - tasks.generatePomFileForMavenJavaPublication { + tasks.generatePomFileForMavenReleasePublication { destination = file("$buildDir/generated-pom.xml") } - tasks.publishMavenJavaPublicationToMavenLocal { + tasks.publishMavenReleasePublicationToMavenLocal { dependsOn project.tasks.signArchives } - tasks.publishMavenJavaPublicationToMavenRepository { + tasks.publishMavenReleasePublicationToMaven2Repository { dependsOn project.tasks.signArchives } } diff --git a/gradle.properties b/gradle.properties index 870bb3e3c38..1f9de7094e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,11 +38,8 @@ ClientId="CLIENT_ID" Username="USERNAME" Password="PASSWORD" -#enter below credentials and enable mavenCentralPublishingEnabled to publish to maven central -signing.keyId="keyId" -signing.secretKeyRingFile="fileLocation" -signing.password="passphrase" -sonatypeUsername="USERNAME" -sonatypePassword="PASSWORD" -mavenCentralUploadUrl=https://oss.sonatype.org/content/repositories/snapshots +#enable mavenCentralPublishingEnabled to publish to maven central +mavenCentralSnapshotUrl=https://oss.sonatype.org/content/repositories/snapshots +mavenCentralReleaseUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2 +mavenCentralSnapshotArtifactSuffix = -SNAPSHOT mavenCentralPublishingEnabled=false From e3c984fcabd49f5bcb96796d11bdbceaf67abb73 Mon Sep 17 00:00:00 2001 From: Nakul Sabharwal Date: Wed, 26 Sep 2018 09:34:12 +0530 Subject: [PATCH 2/2] Renamed mavenJava to mavenCentralRelease tasks and modified model task in gradle. --- build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 1bd5f4b2dc8..c70fc959893 100644 --- a/build.gradle +++ b/build.gradle @@ -307,13 +307,13 @@ gradle.taskGraph.whenReady { taskGraph -> } model { - tasks.generatePomFileForMavenReleasePublication { + tasks.generatePomFileForMavenCentralReleasePublication { destination = file("$buildDir/generated-pom.xml") } - tasks.publishMavenReleasePublicationToMavenLocal { + tasks.publishMavenCentralReleasePublicationToMavenLocal { dependsOn project.tasks.signArchives } - tasks.publishMavenReleasePublicationToMaven2Repository { + tasks.publishMavenCentralReleasePublicationToMaven2Repository { dependsOn project.tasks.signArchives } }