From 16684835ac78c311b8be0217689360e6d94a4c81 Mon Sep 17 00:00:00 2001 From: Andrew Gauld Date: Fri, 25 Aug 2017 13:11:25 -0400 Subject: [PATCH] Maven clean/package/test/deploy for sshkeyshare Change-Id: I7074f904fc2025bc8b76a62bbf56e2b1f66f6045 Issue-Id: CCSDK-65 Signed-off-by: Andrew Gauld --- mvn-phase-script.sh | 118 ++++++++++++++++++++ pom.xml | 44 ++++++-- sshkeyshare/pom.xml | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 456 insertions(+), 10 deletions(-) create mode 100755 mvn-phase-script.sh create mode 100644 sshkeyshare/pom.xml diff --git a/mvn-phase-script.sh b/mvn-phase-script.sh new file mode 100755 index 0000000..5b14754 --- /dev/null +++ b/mvn-phase-script.sh @@ -0,0 +1,118 @@ +#!/bin/bash +# ============LICENSE_START==================================================== +# org.onap.ccsdk +# ============================================================================= +# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +# ============================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END====================================================== + +echo "running script: [$0] for module [$1] at stage [$2]" + +echo "=> Prepare environment " + +# This is the base for where "deploy" will upload +# MVN_NEXUSPROXY is set in the pom.xml +REPO=$MVN_NEXUSPROXY/content/sites/raw + +TIMESTAMP=$(date +%C%y%m%dT%H%M%S) +export BUILD_NUMBER="${TIMESTAMP}" + +# expected environment variables +if [ -z "${MVN_NEXUSPROXY}" ]; then + echo "MVN_NEXUSPROXY environment variable not set. Cannot proceed" + exit +fi +MVN_NEXUSPROXY_HOST=$(echo $MVN_NEXUSPROXY |cut -f3 -d'/' | cut -f1 -d':') + + +# use the version text detect which phase we are in in LF CICD process: verify, merge, or (daily) release + +# mvn phase in life cycle +MVN_PHASE="$2" + +case $MVN_PHASE in +clean) + echo "==> clean phase script" + rm -rf .testenv .pkgenv $PLUGIN_NAME-*.wgn $PLUGIN_SUBDIR/.tox $PLUGIN_SUBDIR/$PLUGIN_NAME.egg-info $(find $PLUGIN_SUBDIR -name __pycache__ -type d -print) + ;; +generate-sources) + echo "==> generate-sources phase script" + # Nothing to do + ;; +compile) + echo "==> compile phase script" + # Nothing to do + ;; +test) + echo "==> test phase script" + if [ -f $PLUGIN_SUBDIR/tox.ini ] + then + set -e -x + rm -rf .testenv + mkdir .testenv + virtualenv .testenv + . .testenv/bin/activate + pip install --upgrade pip + pip install tox + (cd $PLUGIN_SUBDIR; tox) + deactivate + rm -rf .testenv + set +e +x + fi + ;; +package) + echo "==> package phase script" + set -e -x + rm -rf $PLUGIN_NAME-*.wgn .pkgenv + mkdir .pkgenv + virtualenv .pkgenv + . .pkgenv/bin/activate + pip install --upgrade pip + pip install wagon + wagon create --format tar.gz $PLUGIN_SUBDIR + deactivate + rm -rf .pkgenv + ;; +install) + echo "==> install phase script" + # Nothing to do + ;; +deploy) + echo "==> deploy phase script" + # Just upload files to Nexus + set -e -x + function setnetrc { + # Turn off -x so won't leak the credentials + set +x + hostport=$(echo $1 | cut -f3 -d /) + host=$(echo $hostport | cut -f1 -d:) + settings=$HOME/.m2/settings.xml + ( echo machine $host; echo login $(xpath $settings "//servers/server[id='$MVN_SERVER_ID']/username/text()"); echo password $(xpath $settings "//servers/server[id='$MVN_SERVER_ID']/password/text()") ) >$HOME/.netrc + chmod 600 $HOME/.netrc + set -x + } + function putraw { + curl -X PUT -H "Content-Type: text/plain" --netrc --upload-file $1 --url $REPO/$2 + } + setnetrc $REPO + PLUGIN_FILE=$(echo $PLUGIN_NAME-*.wgn) + putraw $PLUGIN_FILE plugins/$PLUGIN_FILE + putraw $TYPE_FILE_SOURCE $TYPE_FILE_DEST + set +e +x + ;; +*) + echo "==> unprocessed phase" + ;; +esac + diff --git a/pom.xml b/pom.xml index 8ae657b..d36297d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,14 +1,38 @@ - - + + + + 4.0.0 + + org.onap.oparent + oparent + 1.0.0-SNAPSHOT + + org.onap.ccsdk.platform + plugins + plugins + 1.0.0-SNAPSHOT + http://maven.apache.org + pom + + sshkeyshare + diff --git a/sshkeyshare/pom.xml b/sshkeyshare/pom.xml new file mode 100644 index 0000000..f5653f9 --- /dev/null +++ b/sshkeyshare/pom.xml @@ -0,0 +1,304 @@ + + + + 4.0.0 + + org.onap.ccsdk.platform + plugins + 1.0.0-SNAPSHOT + + + + org.onap.ccsdk.platform.plugins + sshkeyshare + sshkeyshare + + 1.0.0-SNAPSHOT + http://maven.apache.org + + + sshkeyshare + + . + + sshkey_types.yaml + + type_files/sshkeyshare/sshkey_types.yaml + UTF-8 + . + + http://localhost:9000 + + + py + Python + **/*.py + + + + + + ${project.artifactId}-${project.version} + + + + org.codehaus.mojo + sonar-maven-plugin + 2.7.1 + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + + true + + + + + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 2.6 + + true + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + true + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + default-jar + + + + + + + + org.apache.maven.plugins + maven-install-plugin + 2.4 + + true + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.12.4 + + true + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + clean phase script + clean + exec + + ${session.executionRootDirectory}/mvn-phase-script.sh + + ${project.artifactId} + clean + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + ${plugin.name} + ${plugin.subdir} + + + + + + generate-sources script + generate-sources + exec + + mvn-phase-script.sh + + ${project.artifactId} + generate-sources + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + + + + + + compile script + compile + exec + + mvn-phase-script.sh + + ${project.artifactId} + compile + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + + + + + + package script + package + exec + + mvn-phase-script.sh + + ${project.artifactId} + package + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + ${plugin.name} + ${plugin.subdir} + + + + + + test script + test + exec + + mvn-phase-script.sh + + ${project.artifactId} + test + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + ${plugin.name} + ${plugin.subdir} + + + + + + install script + install + exec + + mvn-phase-script.sh + + ${project.artifactId} + install + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + + + + + + deploy script + deploy + exec + + ${session.executionRootDirectory}/mvn-phase-script.sh + + ${project.artifactId} + deploy + + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${onap.nexus.url} + ${project.distributionManagement.snapshotRepository.id} + ${typefile.source} + ${typefile.dest} + ${plugin.name} + ${plugin.subdir} + + + + + + + + -- 2.16.6