From 48b81aafd785486f6ec795a6eb4663c686261e83 Mon Sep 17 00:00:00 2001 From: Thanh Ha Date: Wed, 20 Apr 2016 14:11:47 -0400 Subject: [PATCH] Add job type to publish a zipped p2repo to Nexus Site This job pushes a zipped p2repo (preferrabled from staging repo that's about to be released) to Nexus Site repo under 'p2repos'. Change-Id: Iaa349e67194df650e9db6e245931ea544ae53af9 Signed-off-by: Thanh Ha --- jjb/include-raw-generate-p2pom.sh | 58 +++++++++ ...include-raw-update-p2composite-metadata.sh | 120 ++++++++++++++++++ jjb/releng-macros.yaml | 24 ++++ jjb/releng-templates.yaml | 38 ++++++ jjb/yangide/yangide-releng.yaml | 2 + 5 files changed, 242 insertions(+) create mode 100644 jjb/include-raw-generate-p2pom.sh create mode 100644 jjb/include-raw-update-p2composite-metadata.sh diff --git a/jjb/include-raw-generate-p2pom.sh b/jjb/include-raw-generate-p2pom.sh new file mode 100644 index 000000000..5e5ffde6f --- /dev/null +++ b/jjb/include-raw-generate-p2pom.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# @License EPL-1.0 +############################################################################## +# Copyright (c) 2016 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## + +FILE_NAME=`echo $P2ZIP_URL | awk -F'/' '{ print $NF }'` +VERSION=`echo $P2ZIP_URL | awk -F'/' '{ print $(NF-1) }'` + +wget $P2ZIP_URL -O $FILE_NAME + +cat > ${WORKSPACE}/pom.xml < + 4.0.0 + org.opendaylight.$PROJECT + p2repo + 1.0.0-SNAPSHOT + pom + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + true + + + + org.sonatype.plugins + maven-upload-plugin + 0.0.1 + + + publish-site + deploy + + upload-file + + + opendaylight-p2 + https://nexus.opendaylight.org/service/local/repositories/p2repos/content-compressed + $FILE_NAME + org.opendaylight.$PROJECT/$VERSION + + + + + + + +EOF diff --git a/jjb/include-raw-update-p2composite-metadata.sh b/jjb/include-raw-update-p2composite-metadata.sh new file mode 100644 index 000000000..f4223af4a --- /dev/null +++ b/jjb/include-raw-update-p2composite-metadata.sh @@ -0,0 +1,120 @@ +#!/bin/bash +# @License EPL-1.0 +############################################################################## +# Copyright (c) 2016 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## + +EPOCH_DATE=`date +%s%3N` +MVN_METADATA=`echo $P2ZIP_URL | sed 's,/*[^/]\+/*$,,' | sed 's,/*[^/]\+/*$,,'`/maven-metadata.xml +P2_COMPOSITE_ARTIFACTS=compositeArtifacts.xml +P2_COMPOSITE_CONTENT=compositeContent.xml + +wget $MVN_METADATA -O maven-metadata.xml + +VERSIONS=`xmlstarlet sel -t -m "/metadata/versioning/versions" -v "version" maven-metadata.xml` +NUM_VERSIONS=`echo $VERSIONS | wc -w` + + +## +## Create compositeArtifacts.xml and compositeContent.xml files +## + +cat > $P2_COMPOSITE_ARTIFACTS < + + + + + + +EOF + +cat > $P2_COMPOSITE_CONTENT < + + + + + + +EOF + +## +## Loop versions +## + +for ver in $VERSIONS +do + echo " " >> $P2_COMPOSITE_ARTIFACTS + echo " " >> $P2_COMPOSITE_CONTENT +done + +## +## Close files +## + +cat >> $P2_COMPOSITE_ARTIFACTS < + +EOF + +cat >> $P2_COMPOSITE_CONTENT < + +EOF + +## +## Create poms for uploading +## + +zip composite-repo.zip $P2_COMPOSITE_ARTIFACTS $P2_COMPOSITE_CONTENT + +cat > deploy-composite-repo.xml < + 4.0.0 + org.opendaylight.$PROJECT + p2repo + 1.0.0-SNAPSHOT + pom + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + true + + + + org.sonatype.plugins + maven-upload-plugin + 0.0.1 + + + publish-site + deploy + + upload-file + + + opendaylight-p2 + https://nexus.opendaylight.org/service/local/repositories/p2repos/content-compressed + composite-repo.zip + org.opendaylight.$PROJECT + + + + + + + +EOF diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 97d13d9ec..4238aa26f 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -64,6 +64,14 @@ default: 'master' description: 'distribution repo branch to build with' +- parameter: + name: p2zip-parameter + parameters: + - string: + name: P2ZIP_URL + default: '' + description: 'Nexus staging profile id' + - parameter: name: stage-id-parameter parameters: @@ -256,6 +264,22 @@ - file-id: '{settings-file}' variable: 'SETTINGS_FILE' +- builder: + name: releng-generate-p2pom + builders: + - shell: !include-raw: include-raw-generate-p2pom.sh + +- builder: + name: releng-update-p2composite-metadata + builders: + - shell: !include-raw: include-raw-update-p2composite-metadata.sh + - maven-target: + maven-version: '{maven-version}' + pom: 'deploy-composite-repo.xml' + goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r' + settings: '{settings}' + global-settings: '{global-settings}' + - builder: name: releng-stage-release builders: diff --git a/jjb/releng-templates.yaml b/jjb/releng-templates.yaml index a90aec478..be6ddc73d 100644 --- a/jjb/releng-templates.yaml +++ b/jjb/releng-templates.yaml @@ -59,6 +59,44 @@ - email-notification: email-prefix: '[releng]' + +- job-template: + name: '{name}-publish-p2repo' + + # Job template for publishing a p2 repo given a URL to a zipped p2repo. + + project-type: maven + node: dynamic_merge + jdk: '{jdk}' + + parameters: + - project-parameter: + project: '{project}' + - p2zip-parameter + + prebuilders: + - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - releng-generate-p2pom + + maven: + maven-name: '{mvn33}' + root-pom: 'pom.xml' + goals: 'clean deploy -V -Dmaven.repo.local=/tmp/r' + settings: '{project-settings}' + global-settings: '{odl-global-settings}' + post-step-run-condition: UNSTABLE + + postbuilders: + - releng-update-p2composite-metadata: + maven-version: '{mvn33}' + settings: '{project-settings}' + global-settings: '{odl-global-settings}' + + publishers: + - email-notification: + email-prefix: '[releng]' + - job-template: name: '{name}-verify-python-{stream}' diff --git a/jjb/yangide/yangide-releng.yaml b/jjb/yangide/yangide-releng.yaml index 19d3f7e77..45e19b69e 100644 --- a/jjb/yangide/yangide-releng.yaml +++ b/jjb/yangide/yangide-releng.yaml @@ -1,8 +1,10 @@ - project: name: yangide-releng jobs: + - '{name}-publish-p2repo' - '{name}-release-java' project: yangide jdk: 'openjdk8' stage-id: 'fba306956f98' + project-settings: 'org.jenkinsci.plugins.configfiles.maven.MavenSettingsConfig1448465159080' -- 2.36.6