Add odlsign-bulk script 02/37302/1
authorThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 8 Apr 2016 00:36:54 +0000 (20:36 -0400)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 8 Apr 2016 00:41:31 +0000 (20:41 -0400)
This script can sign all projects within a staging repo in bulk. Also
update odlrelease signing script to trim 3 directories.

Change-Id: I7e112122c127b880fb6621232e297c6c80abf7cd
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
scripts/odlrelease
scripts/odlsign-bulk [new file with mode: 0755]

index 91e68e7c8db6d2957a64f3a0203b8ad96de75122..61526084ecf425fb74dee124a9f774130a04e240 100755 (executable)
@@ -37,7 +37,7 @@ function sign {
     echo "Fetching artifacts from $URL"
     # Fetch Artifacts
     wget --recursive --execute robots=off --no-parent --quiet \
-        --no-host-directories --cut-dirs=2 \
+        --no-host-directories --cut-dirs=3 \
         $URL
 
     # Remove files that don't need signing
diff --git a/scripts/odlsign-bulk b/scripts/odlsign-bulk
new file mode 100755 (executable)
index 0000000..6a9acf8
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
+##############################################################################
+# Copyright (c) 2016 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+function print_usage {
+    echo "Usage: $0 <staging-repo>"
+    echo ""
+    echo "    <staging-repo>   : The Nexus staging repo ID to sign."
+}
+
+if [ -z "$1" ]; then
+    print_usage
+    exit 1
+fi
+
+SIGNREPO=$1
+SIGNATURES_DIR="gpg-signatures"
+TMPFILE=/tmp/project-list.txt
+
+wget -q https://nexus.opendaylight.org/content/repositories/$SIGNREPO/org/opendaylight/ -O $TMPFILE
+PROJECTS=`grep '/</a>' $TMPFILE | sed -e 's#/</a>.*##' -e 's#.*/">##'`
+echo "Projects detected: $PROJECTS"
+
+#
+# Prepare staging repo to upload signatures to
+#
+
+if [ -d "$SIGNATURES_DIR" ]; then
+    echo "$SIGNATURES_DIR directory exists. Clearing..."
+    rm -rf $SIGNATURES_DIR
+fi
+mkdir $SIGNATURES_DIR
+
+mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:deploy-staged-repository \
+    -DskipStagingRepositoryClose=true \
+    -DrepositoryDirectory="$SIGNATURES_DIR" \
+    -DnexusUrl=https://nexus.opendaylight.org/ \
+    -DstagingProfileId="425e43800fea70" \
+    -DserverId="opendaylight.staging" | tee /tmp/deploy-staged-repository.log
+
+STAGED_REPO_ID=`grep 'Created staging repository with ID' /tmp/deploy-staged-repository.log | sed -e 's/.*ID "//' -e 's/".*//'`
+echo "Staged Repo: $STAGED_REPO"
+
+#
+# Finally retrieve and sign artifacts.
+#
+
+for i in $PROJECTS
+do
+    echo "Signing $i"
+    ./odlrelease sign http://nexus.opendaylight.org/content/repositories/$SIGNREPO/org/opendaylight/$i/
+    mvn org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7:deploy-staged-repository \
+        -DskipStagingRepositoryClose=true \
+        -DstagingRepositoryId=$STAGED_REPO_ID \
+        -DrepositoryDirectory="$SIGNATURES_DIR" \
+        -DnexusUrl=https://nexus.opendaylight.org/ \
+        -DstagingProfileId="425e43800fea70" \
+        -DserverId="opendaylight.staging"
+done