diff options
Diffstat (limited to 'jjb/scripts/maven_push_functions.sh')
-rw-r--r-- | jjb/scripts/maven_push_functions.sh | 90 |
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 +} |