From afd303bc155a27d1ddccfc8add7d510c731decf5 Mon Sep 17 00:00:00 2001 From: "C.J. Collier" Date: Thu, 16 Jun 2016 14:20:28 -0700 Subject: Create script to automate deployment * as per #24343 * re-factored to use common code from include-raw-vpp-maven-push and maven_push_functions.sh Change-Id: I197c114bcf61b0dd2ea81e2be0505793cf594e49 Signed-off-by: C.J. Collier --- .gitignore | 6 +++ jjb/scripts/maven_push_functions.sh | 12 ++--- jjb/vpp/include-raw-vpp-maven-push.sh | 84 +++---------------------------- jjb/vpp/vpp.yaml | 4 +- scripts/deploy.sh | 95 +++++++++++++++++++++++++++++++++++ vagrant/lib/respin-functions.sh | 1 + 6 files changed, 117 insertions(+), 85 deletions(-) create mode 100644 scripts/deploy.sh diff --git a/.gitignore b/.gitignore index 4c0dafd60..92d0f6036 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,9 @@ target/ *~ \.\#* \#* + +# Ruby +.ruby-version + +# Perl +perltidy.ERR diff --git a/jjb/scripts/maven_push_functions.sh b/jjb/scripts/maven_push_functions.sh index 2d6ae791f..5e964e076 100644 --- a/jjb/scripts/maven_push_functions.sh +++ b/jjb/scripts/maven_push_functions.sh @@ -49,8 +49,8 @@ function push_file () function push_jar () { jarfile=$1 - repoId="${BASEREPOID}snapshot" - url="${BASEURL}snapshot" + repoId=${2:-"${BASEREPOID}snapshot"} + url=${3:-"${BASEURL}snapshot"} basefile=$(basename -s .jar "$jarfile") artifactId=$(echo "$basefile" | cut -f 1 -d '-') @@ -62,8 +62,8 @@ function push_jar () function push_deb () { debfile=$1 - repoId="fd.io.${REPO_NAME}" - url="${BASEURL}${REPO_NAME}" + repoId=${2:-"fd.io.${REPO_NAME}"} + url=${3:-"${BASEURL}${REPO_NAME}"} basefile=$(basename -s .deb "$debfile") artifactId=$(echo "$basefile" | cut -f 1 -d '_') @@ -75,8 +75,8 @@ function push_deb () function push_rpm () { rpmfile=$1 - repoId="fd.io.${REPO_NAME}" - url="${BASEURL}${REPO_NAME}" + repoId=${2:-"fd.io.${REPO_NAME}"} + url=${3:-"${BASEURL}${REPO_NAME}"} if grep -qE '\.s(rc\.)?rpm' <<<"$rpmfile" then diff --git a/jjb/vpp/include-raw-vpp-maven-push.sh b/jjb/vpp/include-raw-vpp-maven-push.sh index 91bc295b8..c3361b78e 100644 --- a/jjb/vpp/include-raw-vpp-maven-push.sh +++ b/jjb/vpp/include-raw-vpp-maven-push.sh @@ -1,94 +1,22 @@ #!/bin/bash + +# Copyright 2015,2016 The Linux Foundation +# 2015,2016 Cisco Systems + 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 "*******************************************************************" +source ../scripts/maven_push_functions.sh + # 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 -} - if [ "${OS}" == "ubuntu1404" ]; then # Find the files JARS=$(find . -type f -iname '*.jar') diff --git a/jjb/vpp/vpp.yaml b/jjb/vpp/vpp.yaml index fafd91667..f75db81d7 100644 --- a/jjb/vpp/vpp.yaml +++ b/jjb/vpp/vpp.yaml @@ -198,7 +198,9 @@ settings-file: 'vpp-settings' global-settings-file: 'global-settings' - shell: - !include-raw-escape: include-raw-vpp-maven-push.sh + !include-raw-escape: + - ../scripts/maven_push_functions.sh + - include-raw-vpp-maven-push.sh - job-template: name: 'vpp-csit-verify-virl-{stream}' diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100644 index 000000000..e894d4678 --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +# +# Script created to automate RT #24343 +# + +# Copyright 2016 The Linux Foundation +if [ -n ${MAVEN_SELECTOR} ] +then + MVN=${MVN:-"${HOME}/tools/hudson.tasks.Maven_MavenInstallation/${MAVEN_SELECTOR}/bin/mvn"} +else + MVN=/usr/bin/mvn +fi + +REPO_NAME=${REPO_NAME:-${PROJECT}} + +BASEURL="${NEXUSPROXY}/content/repositories/fd.io." +BASEREPOID='fdio-' + +JAVA_HOME=${JAVA_HOME:-"/usr/lib/jvm/java-8-openjdk-${DEB_ARCH}"} +export JAVA_HOME + +REPO_NAME=${REPO_NAME:-vpp} +GROUP_ID=io.fd.${REPO_NAME} +ARCH=${DEB_ARCH} + +NEXUSPROXY=${NEXUSPROXY:nexus.fd.io} +REPO_ROOT=${https://${NEXUSPROXY}/content/repositories +GLOBAL_SETTINGS_FILE=${GLOBAL_SETTINGS_FILE:-"/etc/maven/settings.xml"} +SETTINGS_FILE=${SETTINGS_FILE:-"${HOME}/.m2/settings.xml"} +CI_MGMT=$(realpath $(dirname $(realpath $0))/..) + +source ${CI_MGMT}/vpp/scripts/maven_push_functions.sh + +VERSION=16.06 + +DEB_ARCH=amd64 +RH_ARCH=x86_64 + +JAR_VERSION="${VERSION}-SNAPSHOT" +RH_VERSION="${VERSION}-release.${RH_ARCH}" +DEB_VERSION="${VERSION}_${DEB_ARCH}" + +declare -A JAR_TAG=( [jvpp]=20160616.165833-38 [vppjapi]=20160616.165830-38 ) +SRC_PFX=fd.io.stable.1606 + +for ARTIFACT_ID in vpp-dbg vpp-lib vpp-dpdk-dkms vpp-dpdk-dev vpp-dev vpp +do + for DEB_DIST in ubuntu.trusty.main ubuntu.xenial.main + do + SRC_REPO="${SRC_PFX}.${DEB_DIST}" + DST_REPO="fd.io.${DEB_DIST}" + + BASENAME="${ARTIFACT_ID}-${DEB_VERSION}.deb" + + mkdir -p ${SRC_REPO} + wget -c -P ${SRC_REPO} "${REPO_ROOT}/${SRC_REPO}/io/fd/${REPO_NAME}/${ARTIFACT_ID}/${DEB_VERSION}/${BASENAME}" + + push_deb "${SRC_REPO}/${BASENAME}" "${DST_REPO}" "${REPO_ROOT}/${DST_REPO}" + done +done + +for ARTIFACT_ID in vpp vpp-lib vpp-devel +do + for RH_DIST in centos7 + do + SRC_REPO="${SRC_PFX}.${RH_DIST}" + DST_REPO="fd.io.${RH_DIST}" + + mkdir -p ${SRC_REPO} + + BASENAME="${ARTIFACT_ID}-${RH_VERSION}.rpm" + + wget -c -P ${SRC_REPO} "${REPO_ROOT}/${SRC_REPO}/io/fd/${REPO_NAME}/${ARTIFACT_ID}/${RH_VERSION}/${BASENAME}" + + #maven_push "${ARTIFACT_ID}" "${RH_VERSION}" "rpm" "${DST_REPO}" "${SRC_REPO}/${BASENAME}" + push_rpm "${SRC_REPO}/${BASENAME}" "${DST_REPO}" "${REPO_ROOT}/${DST_REPO}" + + done +done + +for ARTIFACT_ID in jvpp vppjapi +do + SRC_REPO=fd.io.snapshot + DST_REPO=fd.io.release + + mkdir -p ${SRC_REPO} + + BASENAME="${ARTIFACT_ID}-${VERSION}-${JAR_TAG[${ARTIFACT_ID}]}.jar" + wget -c -P ${SRC_REPO} "${REPO_ROOT}/${SRC_REPO}/io/fd/${REPO_NAME}/${ARTIFACT_ID}/${JAR_VERSION}/${BASENAME}" + +# maven_push "${ARTIFACT_ID}" "${VERSION}" "jar" "${DST_REPO}" "${SRC_REPO}/${BASENAME}" + push_jar "${SRC_REPO}/${BASENAME}" "${DST_REPO}" "${REPO_ROOT}/${DST_REPO}" "${VERSION}" +done + diff --git a/vagrant/lib/respin-functions.sh b/vagrant/lib/respin-functions.sh index 9a9f9809c..0cb3e828e 100644 --- a/vagrant/lib/respin-functions.sh +++ b/vagrant/lib/respin-functions.sh @@ -1,6 +1,7 @@ #!/bin/bash # Copyright 2016 The Linux Foundation +CI_MGMT=$(realpath $(dirname $(realpath $0))/..) PVE_ROOT="${HOME}/src/python-virtual" CPPROJECT=${CPPROJECT:-fdio} -- cgit 1.2.3-korg