You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2017/01/07 04:08:37 UTC

[5/6] groovy git commit: push signing of artifacts into the main build instead of the groovy-release repo (more tweaks - exclude extra artifacts from root project publication)

push signing of artifacts into the main build instead of the groovy-release repo (more tweaks - exclude extra artifacts from root project publication)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/cf07fc0a
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/cf07fc0a
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/cf07fc0a

Branch: refs/heads/master
Commit: cf07fc0a4840a1df56cf1a74047b278bd3fa7328
Parents: adab220
Author: paulk <pa...@asert.com.au>
Authored: Sat Jan 7 13:22:36 2017 +1000
Committer: paulk <pa...@asert.com.au>
Committed: Sat Jan 7 14:07:42 2017 +1000

----------------------------------------------------------------------
 gradle/bintray.gradle | 88 ++++++++++++----------------------------------
 gradle/upload.gradle  | 20 ++++++++---
 2 files changed, 38 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/cf07fc0a/gradle/bintray.gradle
----------------------------------------------------------------------
diff --git a/gradle/bintray.gradle b/gradle/bintray.gradle
index 01142ce..ee3a50b 100644
--- a/gradle/bintray.gradle
+++ b/gradle/bintray.gradle
@@ -46,6 +46,7 @@ allprojects {
         }
         publish {
             repository {
+                excludePatterns = 'org/codehaus/groovy/groovy/*/groovy-all*,org/codehaus/groovy/groovy/*/groovy-backports*,org/codehaus/groovy/groovy/*/groovy-binary*'
                 repoKey = project.hasProperty('bintrayRepoKey') ? project.bintrayRepoKey : 'oss-snapshot-local' //The Artifactory repository key to publish to
                 //when using oss.jfrog.org the credentials are from Bintray. For local build we expect them to be found in
                 //~/.gradle/gradle.properties, otherwise to be set in the build server
@@ -57,78 +58,35 @@ allprojects {
 }
 
 artifactoryPublish {
+    def curDate = new Date()
+    def pomSource = { a -> "$projectDir/target/poms/pom-${a.name - 'groovy-'}.xml" }
+    def destBase = { a -> "org/codehaus/groovy/${a.name}/${version}/${a.name}-${version}${a.classifier ? '-' + a.classifier : ''}" }
+    def newDetails = { orig, newFile, newExt, newType -> gradleDeployDetails(new DefaultPublishArtifact(
+            orig.name, newExt, newType, orig.classifier, curDate, newFile), 'artifacts', destBase(orig) + '.' + newExt) }
+    def makeTransformedDetails = { orig -> newDetails(orig, orig.file, orig.extension, orig.extension) }
+    def makeTransformedPomDetails = { orig -> newDetails(orig, file(pomSource(orig)), 'pom', 'pom') }
+    def makeTransformedPomSigDetails = { orig -> newDetails(orig, file(pomSource(orig) + '.asc'), 'pom.asc', 'asc') }
     mavenDescriptor = new File("$projectDir/target/poms/pom-groovy.xml")
     doFirst{
-        def curDate = new Date()
-        def additionalFiles = [
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "jar", "jar", null,
-                        curDate, file("$projectDir/target/libs/groovy-all-${version}.jar")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}.jar"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "jar", "jar", 'sources',
-                        curDate, file("$projectDir/target/libs/groovy-all-${version}-sources.jar")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}-sources.jar"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "jar", "jar", 'javadoc',
-                        curDate, file("$projectDir/target/libs/groovy-all-${version}-javadoc.jar")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}-javadoc.jar"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "jar", "jar", 'groovydoc',
-                        curDate, file("$projectDir/target/libs/groovy-all-${version}-groovydoc.jar")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}-groovydoc.jar"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "jar", "jar", 'indy',
-                        curDate, file("$projectDir/target/libs/groovy-all-${version}-indy.jar")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}-indy.jar"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "pom", "pom", null,
-                        curDate, file("$projectDir/target/poms/pom-all.xml")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}.pom"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-all", "pom.asc", "pom.asc", null,
-                        curDate, file("$projectDir/target/poms/pom-all.xml.asc")), 'artifacts',
-                        "org/codehaus/groovy/groovy-all/${version}/groovy-all-${version}.pom.asc"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-binary", "zip", "zip", null,
-                        curDate, distBin.archivePath), 'artifacts',
-                        "org/codehaus/groovy/groovy-binary/${version}/groovy-binary-${version}.zip"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-binary", "zip.asc", "zip.asc", null,
-                        curDate, new File(distBin.destinationDir, distBin.archiveName + '.asc')), 'artifacts',
-                        "org/codehaus/groovy/groovy-binary/${version}/groovy-binary-${version}.zip.asc"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-binary", "pom", "pom", null,
-                        curDate, file("$projectDir/target/poms/pom-binary.xml")), 'artifacts',
-                        "org/codehaus/groovy/groovy-binary/${version}/groovy-binary-${version}.pom"),
-                gradleDeployDetails(new DefaultPublishArtifact("groovy-binary", "pom.asc", "pom.asc", null,
-                        curDate, file("$projectDir/target/poms/pom-binary.xml.asc")), 'artifacts',
-                        "org/codehaus/groovy/groovy-binary/${version}/groovy-binary-${version}.pom.asc"),
-
-        ]
-        tasks.withType(Jar).matching { it.name.startsWith('backport') }.all {
-            String baseDir = "org/codehaus/groovy/${baseName}/${version}"
-            additionalFiles << gradleDeployDetails(
-                    new DefaultPublishArtifact(baseName, "jar", "jar", classifier, curDate, archivePath),
-                    'artifacts',
-                    "$baseDir/${archiveName}")
-            additionalFiles << gradleDeployDetails(
-                    new DefaultPublishArtifact(baseName, "jar.asc", "jar.asc", classifier, curDate, new File(destinationDir, archiveName + '.asc')),
-                    'artifacts',
-                    "$baseDir/${archiveName}.asc")
-            if (!classifier) {
-                def pomLocation = "$projectDir/target/poms/pom-${baseName - 'groovy-'}.xml"
-                additionalFiles << gradleDeployDetails(
-                        new DefaultPublishArtifact(baseName, "pom", "pom", null, curDate, file(pomLocation)),
-                        'artifacts',
-                        "$baseDir/${baseName}-${version}.pom")
-                additionalFiles << gradleDeployDetails(
-                        new DefaultPublishArtifact(baseName, "pom.asc", "pom.asc", null, curDate, file(pomLocation + '.asc')),
-                        'artifacts',
-                        "$baseDir/${baseName}-${version}.pom.asc")
+        configurations.archives.artifacts.findAll{ it.name != project.name }.each {
+            // the plugin we are using uses the project name rather than the artifact name
+            // as the artifactId, so we add the transformed one ourselves
+            // this also covers signatures which we already added during install
+            deployDetails.add(makeTransformedDetails(it))
+            if (it.type == 'jar' && it.extension == 'jar' && !it.classifier) {
+                // and the pom and its signature
+                deployDetails.add(makeTransformedPomDetails(it))
+                deployDetails.add(makeTransformedPomSigDetails(it))
             }
         }
+
         allprojects {
-            configurations.archives.artifacts.findAll{ it.name == project.name && it.type == 'jar' && it.extension == 'jar' }.each {
-                def pomLocation = "$project.projectDir/target/poms/pom-${project == rootProject ? 'groovy' : 'default'}.xml"
-                String baseDir = "org/codehaus/groovy/${it.name}/${version}"
-                additionalFiles << gradleDeployDetails(
-                        new DefaultPublishArtifact(it.name, "pom.asc", "pom.asc", null, curDate, file(pomLocation + '.asc')),
-                        'artifacts',
-                        "$baseDir/${it.name}-${version}.pom.asc")
+            configurations.archives.artifacts.findAll{ it.name == project.name && it.type == 'jar' && it.extension == 'jar' && !it.classifier }.each {
+                // add pom signatures
+                def pomSigLocation = "$project.projectDir/target/poms/pom-${project == rootProject ? 'groovy' : 'default'}.xml.asc"
+                deployDetails.add(newDetails(it, file(pomSigLocation), 'pom.asc', 'pom'))
             }
         }
-        additionalFiles.each { deployDetails.add(it) }
     }
 }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/cf07fc0a/gradle/upload.gradle
----------------------------------------------------------------------
diff --git a/gradle/upload.gradle b/gradle/upload.gradle
index 8515d07..d99ad18 100644
--- a/gradle/upload.gradle
+++ b/gradle/upload.gradle
@@ -47,7 +47,7 @@ allprojects {
         signing.sign(c, f)
         project.artifacts.add('archives', new File(f.parent, f.name + '.asc')) {
             classifier = c
-            type = 'jar.asc'
+            type = 'asc'
             extension = 'jar.asc'
         }
     }
@@ -57,7 +57,7 @@ allprojects {
         project.artifacts.add('archives', new File(archiveTask.destinationDir, archiveTask.archiveName + '.asc')) {
             name = archiveTask.baseName
             classifier = archiveTask.classifier
-            type = archiveTask.extension + '.asc'
+            type = 'asc'
             extension = archiveTask.extension + '.asc'
         }
     }
@@ -109,6 +109,8 @@ allprojects {
 
     install {
         doFirst {
+            // gradle doesn't expect us to mutate configurations like we do here
+            // so signing the configuration won't work and we do it manually here
             signArchiveTask(jar)
             signArchiveTask(sourceJar)
             signArchiveTask(javadocJar)
@@ -125,7 +127,9 @@ allprojects {
     }
 }
 
-// the root project generates an alternate 'groovy-all' artifact
+// the root project generates several alternate artifacts, e.g. 'groovy-all'
+// we don't want them in the root project so add them as artifacts with a modified name
+// we'll exclude the original artifacts during publication with an exclude pattern
 [uploadArchives, install]*.with {
     dependsOn([sourceAllJar, javadocAllJar, groovydocAllJar, distBin, distDoc, dist, distBin])
     doFirst {
@@ -150,7 +154,12 @@ allprojects {
         signArchiveTask(groovydocAllJar)
 
         // TODO rework these?
-        signing.sign(distBin)
+        signing.sign(distBin.archivePath)
+        project.artifacts.add('archives', new File(distBin.destinationDir, distBin.archiveName + '.asc')) {
+            name = 'groovy-binary'
+            type = 'asc'
+            extension = 'zip.asc'
+        }
         signing.sign(distSrc.archivePath)
         signing.sign(distDoc.archivePath)
         signing.sign(dist.archivePath)
@@ -165,7 +174,8 @@ allprojects {
             project.artifacts.add('archives', new File(t.destinationDir, t.archiveName + '.asc')) {
                 name = t.baseName
                 classifier = t.classifier
-                type = t.extension + '.asc'
+                type = 'asc'
+                extension = t.extension + '.asc'
             }
         }