Create script to automate deployment 06/1606/4
authorC.J. Collier <cjcollier@linuxfoundation.org>
Thu, 16 Jun 2016 21:20:28 +0000 (14:20 -0700)
committerC.J. Collier <cjcollier@linuxfoundation.org>
Fri, 17 Jun 2016 08:40:04 +0000 (08:40 +0000)
* 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 <cjcollier@linuxfoundation.org>
.gitignore
jjb/scripts/maven_push_functions.sh
jjb/vpp/include-raw-vpp-maven-push.sh
jjb/vpp/vpp.yaml
scripts/deploy.sh [new file with mode: 0644]
vagrant/lib/respin-functions.sh

index 4c0dafd..92d0f60 100644 (file)
@@ -18,3 +18,9 @@ target/
 *~
 \.\#*
 \#*
+
+# Ruby
+.ruby-version
+
+# Perl
+perltidy.ERR
index 2d6ae79..5e964e0 100644 (file)
@@ -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
index 91bc295..c3361b7 100644 (file)
@@ -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')
index fafd916..f75db81 100644 (file)
             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 (file)
index 0000000..e894d46
--- /dev/null
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+#
+# Script created to automate RT #24343
+#
+
+# Copyright 2016 The Linux Foundation <cjcollier@linuxfoundation.org>
+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
+
index 9a9f980..0cb3e82 100644 (file)
@@ -1,6 +1,7 @@
 #!/bin/bash
 
 # Copyright 2016 The Linux Foundation <cjcollier@linuxfoundation.org>
+CI_MGMT=$(realpath $(dirname $(realpath $0))/..)
 
 PVE_ROOT="${HOME}/src/python-virtual"
 CPPROJECT=${CPPROJECT:-fdio}