diff options
-rw-r--r-- | jjb/honeycomb/honeycomb.yaml | 15 | ||||
-rw-r--r-- | jjb/honeycomb/include-raw-honeycomb-pkg-push.sh | 16 | ||||
-rw-r--r-- | jjb/scripts/maven_push_functions.sh | 90 |
3 files changed, 120 insertions, 1 deletions
diff --git a/jjb/honeycomb/honeycomb.yaml b/jjb/honeycomb/honeycomb.yaml index 15b753d4c..1b8cc43c2 100644 --- a/jjb/honeycomb/honeycomb.yaml +++ b/jjb/honeycomb/honeycomb.yaml @@ -6,10 +6,15 @@ - 'honeycomb-integration-{stream}-{os}' - 'honeycomb-verify-image-{stream}-{os}' project: 'honeycomb' + os: + - ubuntu1404: + repo-os-part: 'ubuntu.trusty.main' + - centos7: + repo-os-part: 'centos7' stream: - master: branch: 'master' - os: 'ubuntu1404' + repo-stream-part: 'master' - job-template: name: 'honeycomb-verify-{stream}-{os}' @@ -157,6 +162,10 @@ project: '{project}' - os-parameter: os: '{os}' + - maven-project-parameter: + maven: '{mvn33}' + - repo-name-parameter: + repo-name: '{repo-stream-part}.{repo-os-part}' scm: - gerrit-trigger-scm: @@ -190,6 +199,10 @@ global-settings-type: cfp postbuilders: + - shell: + !include-raw-escape: + - ../scripts/maven_push_functions.sh + - include-raw-honeycomb-pkg-push.sh - shell: | if [ "${{OS}}" == "ubuntu1404" ];then sudo update-java-alternatives -s /usr/lib/jvm/java-1.7.0-openjdk-amd64;fi diff --git a/jjb/honeycomb/include-raw-honeycomb-pkg-push.sh b/jjb/honeycomb/include-raw-honeycomb-pkg-push.sh new file mode 100644 index 000000000..c501a08f1 --- /dev/null +++ b/jjb/honeycomb/include-raw-honeycomb-pkg-push.sh @@ -0,0 +1,16 @@ +#!/bin/bash +if [ "${OS}" == "centos7" ]; then + + # Build the rpms + + ./packaging/rpm/rpmbuild.sh + + # Find the files + RPMS=$(find . -type f -iname '*.rpm') + SRPMS=$(find . -type f -iname '*.srpm') + SRCRPMS=$(find . -type f -name '*.src.rpm') + for i in $RPMS $SRPMS $SRCRPMS + do + push_rpm "$i" + done +fi
\ No newline at end of file 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 +} |