summaryrefslogtreecommitdiffstats
path: root/jjb/scripts/maven_push_functions.sh
diff options
context:
space:
mode:
authorEd Warnicke <eaw@cisco.com>2016-06-15 11:45:51 -0500
committerEd Warnicke <hagbard@gmail.com>2016-06-16 20:55:36 +0000
commit94a021b71266d451fcca9f7132e68c73b20140c4 (patch)
tree52086f5b7d3087ab6958a7b73c8423c74a0b5785 /jjb/scripts/maven_push_functions.sh
parent995d396e9310ded5827f5ee17c345b06234f68ca (diff)
Setup honeycomb to build and push rpms on merge
This patch depends on the merging of https://gerrit.fd.io/r/#/c/1574/ which must merge before it. Please also note, while there is a first step to getting the package pushing scripts into a common sharable place, the vpp script for pushing has *intentionally* not been changed to use it yet because of the release later this week as a matter of risk management. Change-Id: Ifad185d35f582a62bb750ece3c022a24d2153b4e Signed-off-by: Ed Warnicke <eaw@cisco.com>
Diffstat (limited to 'jjb/scripts/maven_push_functions.sh')
-rw-r--r--jjb/scripts/maven_push_functions.sh90
1 files changed, 90 insertions, 0 deletions
diff --git a/jjb/scripts/maven_push_functions.sh b/jjb/scripts/maven_push_functions.sh
new file mode 100644
index 000000000..2d6ae791f
--- /dev/null
+++ b/jjb/scripts/maven_push_functions.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+set -xe -o pipefail
+echo "*******************************************************************"
+echo "* STARTING PUSH OF PACKAGES TO REPOS"
+echo "* NOTHING THAT HAPPENS BELOW THIS POINT IS RELATED TO BUILD FAILURE"
+echo "*******************************************************************"
+
+# Determine the path to maven
+if [ -z "${MAVEN_SELECTOR}" ]; then
+ echo "ERROR: No Maven install detected!"
+ exit 1
+fi
+
+MVN="${HOME}/tools/hudson.tasks.Maven_MavenInstallation/${MAVEN_SELECTOR}/bin/mvn"
+GROUP_ID="io.fd.${PROJECT}"
+BASEURL="${NEXUSPROXY}/content/repositories/fd.io."
+BASEREPOID='fdio-'
+
+function push_file ()
+{
+ push_file=$1
+ repoId=$2
+ url=$3
+ version=$4
+ artifactId=$5
+ file_type=$6
+ classifier=$7
+
+ if [ "$classifier" ]; then
+ d_classifier="-Dclassifier=$7"
+ fi
+
+ # Disable checks for doublequote to prevent glob / splitting
+ # shellcheck disable=SC2086
+ $MVN org.apache.maven.plugins:maven-deploy-plugin:deploy-file \
+ -Dfile=$push_file -DrepositoryId=$repoId \
+ -Durl=$url -DgroupId=$GROUP_ID \
+ -Dversion=$version -DartifactId=$artifactId \
+ -Dtype=$file_type $d_classifier\
+ -gs $GLOBAL_SETTINGS_FILE -s $SETTINGS_FILE
+
+ # make sure the script bombs if we fail an upload
+ if [ "$?" != '0' ]; then
+ echo "ERROR: There was an error with the upload"
+ exit 1
+ fi
+}
+
+function push_jar ()
+{
+ jarfile=$1
+ repoId="${BASEREPOID}snapshot"
+ url="${BASEURL}snapshot"
+
+ basefile=$(basename -s .jar "$jarfile")
+ artifactId=$(echo "$basefile" | cut -f 1 -d '-')
+ version=$(echo "$basefile" | cut -f 2 -d '-')
+
+ push_file "$jarfile" "$repoId" "$url" "${version}-SNAPSHOT" "$artifactId" jar
+}
+
+function push_deb ()
+{
+ debfile=$1
+ repoId="fd.io.${REPO_NAME}"
+ url="${BASEURL}${REPO_NAME}"
+
+ basefile=$(basename -s .deb "$debfile")
+ artifactId=$(echo "$basefile" | cut -f 1 -d '_')
+ version=$(echo "$basefile" | cut -f 2- -d '_')
+
+ push_file "$debfile" "$repoId" "$url" "$version" "$artifactId" deb
+}
+
+function push_rpm ()
+{
+ rpmfile=$1
+ repoId="fd.io.${REPO_NAME}"
+ url="${BASEURL}${REPO_NAME}"
+
+ if grep -qE '\.s(rc\.)?rpm' <<<"$rpmfile"
+ then
+ rpmrelease=$(rpm -qp --queryformat="%{release}.src" "$rpmfile")
+ else
+ rpmrelease=$(rpm -qp --queryformat="%{release}.%{arch}" "$rpmfile")
+ fi
+ artifactId=$(rpm -qp --queryformat="%{name}" "$rpmfile")
+ version=$(rpm -qp --queryformat="%{version}" "$rpmfile")
+ push_file "$rpmfile" "$repoId" "$url" "${version}-${rpmrelease}" "$artifactId" rpm
+}