#!/bin/bash # @License 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 " echo "" echo " : 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 '/' $TMPFILE | sed -e 's#/.*##' -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