Push artifacts 34/34/1
authorAndrew Grimberg <agrimberg@linuxfoundation.org>
Wed, 9 Dec 2015 22:20:11 +0000 (14:20 -0800)
committerAndrew Grimberg <agrimberg@linuxfoundation.org>
Wed, 9 Dec 2015 22:20:11 +0000 (14:20 -0800)
Update to support pushing jar and deb artifacts

Change-Id: I38552564e2dbf6dddfaca4a7a21cd800619829c2
Signed-off-by: Andrew Grimberg <agrimberg@linuxfoundation.org>
jjb/global-macros.yaml
jjb/vpp/include-raw-vpp-maven-push.sh [new file with mode: 0644]
jjb/vpp/vpp.yaml

index eb52c73..dc30fbd 100644 (file)
             default: '{refspec}'
             description: "GERRIT_REFSPEC parameter not given by trigger"
 
+- parameter:
+    name: maven-project-parameter
+    parameters:
+        - string:
+            name: MAVEN_SELECTOR
+            default: '{maven}'
+            description: 'Maven selector to be used by shell scripts'
+
+
 ##### SCMS
 - scm:
     name: git-scm
     builders:
         - config-file-provider:
             files:
-                - file-id: '{global-settings}'
+                - file-id: '{global-settings-file}'
                   variable: 'GLOBAL_SETTINGS_FILE'
                 - file-id: '{settings-file}'
                   variable: 'SETTINGS_FILE'
diff --git a/jjb/vpp/include-raw-vpp-maven-push.sh b/jjb/vpp/include-raw-vpp-maven-push.sh
new file mode 100644 (file)
index 0000000..29e8f63
--- /dev/null
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+# Determine the path to maven
+if [ -n "${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="info.projectrotterdam.${PROJECT}"
+BASEURL="${NEXUSPROXY}/content/repositories/rotterdam."
+BASEREPOID='rotterdam.'
+
+# find the files
+JARS=$(find . -type f -iname '*.jar')
+DEBS=$(find . -type f -iname '*.deb')
+
+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
+}
+
+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" "$artifactId" jar
+}
+
+function push_deb ()
+{
+    debfile=$1
+    repoId="${BASEREPOID}release"
+    url="${BASEURL}release"
+
+    basefile=$(basename -s _amd64.deb "$debfile")
+    artifactId=$(echo "$basefile" | cut -f 1 -d '_')
+    version=$(echo "$basefile" | cut -f 2 -d '_')
+
+    push_file "$debfile" "$repoId" "$url" "$version" "$artifactId" deb _amd64
+}
+
+for i in $JARS
+do
+    push_jar "$i"
+done
+
+for i in $DEBS
+do
+    push_deb "$i"
+done
+
+# vim: ts=4 sw=4 sts=4 et ft=sh :
index d0deda0..fba7698 100644 (file)
@@ -66,6 +66,8 @@
             project: '{project}'
         - gerrit-parameter:
             branch: '{branch}'
+        - maven-project-parameter:
+            maven: '{mvn33}'
 
     scm:
         - gerrit-trigger-scm:
     builders:
         - shell:
             !include-raw-escape include-raw-vpp-build.sh
+        - maven-target:
+            maven-version: '{mvn33}'
+            goals: '--version'
+            settings: '{vpp-settings}'
+            global-settings: '{global-settings}'
+        - provide-maven-settings:
+            settings-file: '{vpp-settings}'
+            global-settings-file: '{global-settings}'
+        - shell:
+            !include-raw-escape include-raw-vpp-maven-push.sh
 
     publishers:
         - archive-artifacts: