blob: 646e5647e3d699f87334c9de5eefd8a6af6b8660 [file] [log] [blame]
#!/bin/bash -e
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# This is a general bash script to sign and deploy a datasketches-memory-X.jar.
# This is intended to be used for releasing the Memory component to Maven central.
# Required Input Parameters:
# \$1 = Git Version Tag for this deployment
# Example tag for SNAPSHOT : 1.0.0-SNAPSHOT
# Example tag for Release Candidate: 1.0.0-RC1
# Example tag for Release : 1.0.0
# \$2 = absolute path of project.basedir
# For example: $ <this script>.sh 2.1.0 .
#### Extract GitTag, TestJar and ProjectBaseDir from input parameters ####
GitTag=$1
ProjectBaseDir=$2
#### Setup absolute directory references ####
OutputDir=${ProjectBaseDir}/target
OutputMrJar=${OutputDir}/datasketches-memory-${GitTag}.jar
OutputTests=${OutputDir}/datasketches-memory-${GitTag}-tests.jar
OutputJavaDoc=${OutputDir}/datasketches-memory-${GitTag}-javadoc.jar
OutputSources=${OutputDir}/datasketches-memory-${GitTag}-sources.jar
OutputTestSources=${OutputDir}/datasketches-memory-${GitTag}-test-sources.jar
OutputPom=${OutputDir}/datasketches-memory-${GitTag}-pom
#### Use GNU-GPG to create signature
sign_file () {
File=$1
gpg --verbose --personal-digest-preferences=SHA512 --detach-sign -a $File
}
### Deploy to nexus
if [[ $GitTag == *SNAPSHOT ]]
then
echo "Using SNAPSHOT repository."
DistributionsUrl=https://repository.apache.org/content/repositories/snapshots/
DistributionsId=apache.snapshots.https
else
echo "Using RELEASES repository."
DistributionsUrl=https://repository.apache.org/service/local/staging/deploy/maven2/
DistributionsId=apache.releases.https
fi;
mvn org.apache.maven.plugins:maven-gpg-plugin:3.0.1:sign-and-deploy-file \
-Durl=$DistributionsUrl\
-DrepositoryId=$DistributionsId \
-Dfile=$OutputMrJar \
-Dsources=$OutputSources \
-Dfiles=$OutputTests,$OutputTestSources \
-Dtypes=jar,jar \
-Dclassifiers=tests,test-sources \
-Djavadoc=$OutputJavaDoc \
-Dpackaging=jar \
-Dversion=$GitTag \
-DupdateReleaseInfo=true \
-DpomFile=${ProjectBaseDir}/pom.xml
echo "Successfully signed and deployed jars"