From 0e903b99b3e003aed6e3124284b80634e20c42fb Mon Sep 17 00:00:00 2001 From: Lusheng Ji Date: Thu, 21 Sep 2017 04:19:47 +0000 Subject: Add script for uploading schema artifacts Issue-Id: DCAEGEN2-60 Change-Id: If51aacf59ec5c556f4bc37a7c02af2ac8c66edd5 Signed-off-by: Lusheng Ji --- component-json-schemas/pom.xml | 246 +++++++++++++++++++++++++++++++++++++++++ dcae-cli/pom.xml | 67 +---------- mvn-phase-lib.sh | 104 ++++++++++++++++- mvn-phase-script.sh | 88 ++++----------- pom.xml | 26 +++-- 5 files changed, 385 insertions(+), 146 deletions(-) create mode 100644 component-json-schemas/pom.xml diff --git a/component-json-schemas/pom.xml b/component-json-schemas/pom.xml new file mode 100644 index 0000000..81e02da --- /dev/null +++ b/component-json-schemas/pom.xml @@ -0,0 +1,246 @@ + + + + 4.0.0 + + org.onap.dcaegen2.platform.cli + cli + 1.0.0-SNAPSHOT + + org.onap.dcaegen2.platform.cli + component-json-schemas + dcaegen2-platform-cli-component-json-schemas + 1.0.0-SNAPSHOT + http://maven.apache.org + + UTF-8 + . + + + + + py + Python + **/*.py + + + + + ${project.artifactId}-${project.version} + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + + true + + + + org.apache.maven.plugins + maven-deploy-plugin + + 2.8 + + 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 + + + + ${project.artifactId} + clean + + + + + generate-sources script + generate-sources + + exec + + + + ${project.artifactId} + generate-sources + + + + + compile script + compile + + exec + + + + ${project.artifactId} + compile + + + + + package script + package + + exec + + + + ${project.artifactId} + package + + + + + test script + test + + exec + + + + ${project.artifactId} + test + + + + + install script + install + + exec + + + + ${project.artifactId} + install + + + + + deploy script + deploy + + exec + + + + ${project.artifactId} + deploy + + + + + + + + diff --git a/dcae-cli/pom.xml b/dcae-cli/pom.xml index e7f5534..f0f907a 100644 --- a/dcae-cli/pom.xml +++ b/dcae-cli/pom.xml @@ -21,13 +21,13 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. 4.0.0 - org.onap.dcaegen2.platform + org.onap.dcaegen2.platform.cli cli 1.0.0-SNAPSHOT org.onap.dcaegen2.platform.cli dcae-cli - dcae-cli + dcaegen2-platform-cli-dcae-cli 1.0.0-SNAPSHOT http://maven.apache.org @@ -155,19 +155,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - ${session.executionRootDirectory}/mvn-phase-script.sh ${project.artifactId} clean - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - @@ -177,19 +168,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - mvn-phase-script.sh ${project.artifactId} generate-sources - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - @@ -199,19 +181,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - mvn-phase-script.sh ${project.artifactId} compile - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - @@ -221,19 +194,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - mvn-phase-script.sh ${project.artifactId} package - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - @@ -243,19 +207,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - mvn-phase-script.sh ${project.artifactId} test - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - @@ -265,19 +220,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - mvn-phase-script.sh ${project.artifactId} install - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - @@ -287,19 +233,10 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. exec - mvn-phase-script.sh ${project.artifactId} deploy - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${onap.nexus.url} - - diff --git a/mvn-phase-lib.sh b/mvn-phase-lib.sh index 2a924f7..5a25896 100755 --- a/mvn-phase-lib.sh +++ b/mvn-phase-lib.sh @@ -19,6 +19,68 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. +#MVN_PROJECT_MODULEID="$1" +#MVN_PHASE="$2" +#PROJECT_ROOT=$(dirname $0) + +FQDN="${MVN_PROJECT_GROUPID}.${MVN_PROJECT_ARTIFACTID}" +if [ "$MVN_PROJECT_MODULEID" == "__" ]; then + MVN_PROJECT_MODULEID="" +fi + +if [[ "$MVN_PROJECT_VERSION" == *SNAPSHOT ]]; then + echo "=> for SNAPSHOT artifact build" + MVN_DEPLOYMENT_TYPE='SNAPSHOT' +else + echo "=> for STAGING/RELEASE artifact build" + MVN_DEPLOYMENT_TYPE='STAGING' +fi +echo "MVN_DEPLOYMENT_TYPE is [$MVN_DEPLOYMENT_TYPE]" + + +TIMESTAMP=$(date +%C%y%m%dT%H%M%S) + +# 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':') +echo "=> Nexus Proxy at $MVN_NEXUSPROXY_HOST, $MVN_NEXUSPROXY" + +if [ -z "$WORKSPACE" ]; then + WORKSPACE=$(pwd) +fi + +if [ -z "$SETTINGS_FILE" ]; then + echo "SETTINGS_FILE environment variable not set. Cannot proceed" + exit +fi + + + +# mvn phase in life cycle +MVN_PHASE="$2" + +echo "MVN_PROJECT_MODULEID is [$MVN_PROJECT_MODULEID]" +echo "MVN_PHASE is [$MVN_PHASE]" +echo "MVN_PROJECT_GROUPID is [$MVN_PROJECT_GROUPID]" +echo "MVN_PROJECT_ARTIFACTID is [$MVN_PROJECT_ARTIFACTID]" +echo "MVN_PROJECT_VERSION is [$MVN_PROJECT_VERSION]" +echo "MVN_NEXUSPROXY is [$MVN_NEXUSPROXY]" +echo "MVN_RAWREPO_BASEURL_UPLOAD is [$MVN_RAWREPO_BASEURL_UPLOAD]" +echo "MVN_RAWREPO_BASEURL_DOWNLOAD is [$MVN_RAWREPO_BASEURL_DOWNLOAD]" +MVN_RAWREPO_HOST=$(echo "$MVN_RAWREPO_BASEURL_UPLOAD" | cut -f3 -d'/' |cut -f1 -d':') +echo "MVN_RAWREPO_HOST is [$MVN_RAWREPO_HOST]" +echo "MVN_RAWREPO_SERVERID is [$MVN_RAWREPO_SERVERID]" +echo "MVN_DOCKERREGISTRY_DAILY is [$MVN_DOCKERREGISTRY_DAILY]" +echo "MVN_DOCKERREGISTRY_RELEASE is [$MVN_DOCKERREGISTRY_RELEASE]" + +echo "MVN_PYPISERVER_SERVERID [$MVN_PYPISERVER_SERVERID]" +echo "MVN_PYPISERVER_BASEURL is [$MVN_PYPISERVER_BASEURL]" + + + clean_templated_files() { TEMPLATE_FILES=$(find . -name "*-template") @@ -52,7 +114,7 @@ expand_templates() export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_blueprints_releases="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2.platform.blueprints/releases" export ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_blueprints_snapshots="$MVN_RAWREPO_BASEURL_DOWNLOAD/org.onap.dcaegen2.platform.blueprints/snapshots" - export ONAPTEMPLATE_PYPIURL_org_onap_dcaegen2="${MVN_NEXUSPROXY}/content/sites/pypi" + export ONAPTEMPLATE_PYPIURL_org_onap_dcaegen2="$MVN_PYPISERVER_BASEURL" export ONAPTEMPLATE_DOCKERREGURL_org_onap_dcaegen2_releases="$MVN_DOCKERREGISTRY_DAILY" export ONAPTEMPLATE_DOCKERREGURL_org_onap_dcaegen2_snapshots="$MVN_DOCKERREGISTRY_DAILY/snapshots" @@ -169,10 +231,12 @@ upload_raw_file() REPO="$MVN_RAWREPO_BASEURL_UPLOAD" - OUTPUT_FILE=$1 + OUTPUT_FILE=$(echo "$1" | sed -e "s/^.\///") EXT=$(echo "$OUTPUT_FILE" | rev |cut -f1 -d '.' |rev) if [ "$EXT" == 'yaml' ]; then OUTPUT_FILE_TYPE='text/x-yaml' + elif [ "$EXT" == 'json' ]; then + OUTPUT_FILE_TYPE='application/json' elif [ "$EXT" == 'sh' ]; then OUTPUT_FILE_TYPE='text/x-shellscript' elif [ "$EXT" == 'gz' ]; then @@ -185,9 +249,9 @@ upload_raw_file() if [ "$MVN_DEPLOYMENT_TYPE" == 'SNAPSHOT' ]; then - SEND_TO="${REPO}/${FQDN}/snapshots" + SEND_TO="${REPO}/${MVN_PROJECT_GROUPID}/snapshots" elif [ "$MVN_DEPLOYMENT_TYPE" == 'STAGING' ]; then - SEND_TO="${REPO}/${FQDN}/releases" + SEND_TO="${REPO}/{$MVN_PROJECT_GROUPID}/releases" else echo "Unreconfnized deployment type, quit" exit @@ -226,20 +290,48 @@ upload_files_of_extension() } +generate_pypirc_then_publish() +{ + set +x + USER=$(xpath -e "//servers/server[id='$MVN_PYPISERVER_SERVERID']/username/text()" "$SETTINGS_FILE") + PASS=$(xpath -e "//servers/server[id='$MVN_PYPISERVER_SERVERID']/password/text()" "$SETTINGS_FILE") + + if [[ "$MVN_PYPISERVER_BASEURL" != */ ]]; then + MVN_PYPISERVER_BASEURL="${MVN_PYPISERVER_BASEURL}/" + fi + + + cat > ~/.pypirc < for SNAPSHOT artifact build" - MVN_DEPLOYMENT_TYPE='SNAPSHOT' -else - echo "=> for STAGING/RELEASE artifact build" - MVN_DEPLOYMENT_TYPE='STAGING' -fi -echo "MVN_DEPLOYMENT_TYPE is [$MVN_DEPLOYMENT_TYPE]" - - -TIMESTAMP=$(date +%C%y%m%dT%H%M%S) - # 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':') -echo "=> Nexus Proxy at $MVN_NEXUSPROXY_HOST, $MVN_NEXUSPROXY" - -if [ -z "$WORKSPACE" ]; then - WORKSPACE=$(pwd) + exit 1 fi - if [ -z "$SETTINGS_FILE" ]; then echo "SETTINGS_FILE environment variable not set. Cannot proceed" - exit + exit 2 fi - -# mvn phase in life cycle -MVN_PHASE="$2" +source "${PROJECT_ROOT}"/mvn-phase-lib.sh -echo "MVN_PROJECT_MODULEID is [$MVN_PROJECT_MODULEID]" -echo "MVN_PHASE is [$MVN_PHASE]" -echo "MVN_PROJECT_GROUPID is [$MVN_PROJECT_GROUPID]" -echo "MVN_PROJECT_ARTIFACTID is [$MVN_PROJECT_ARTIFACTID]" -echo "MVN_PROJECT_VERSION is [$MVN_PROJECT_VERSION]" -echo "MVN_NEXUSPROXY is [$MVN_NEXUSPROXY]" -echo "MVN_RAWREPO_BASEURL_UPLOAD is [$MVN_RAWREPO_BASEURL_UPLOAD]" -echo "MVN_RAWREPO_BASEURL_DOWNLOAD is [$MVN_RAWREPO_BASEURL_DOWNLOAD]" -MVN_RAWREPO_HOST=$(echo "$MVN_RAWREPO_BASEURL_UPLOAD" | cut -f3 -d'/' |cut -f1 -d':') -echo "MVN_RAWREPO_HOST is [$MVN_RAWREPO_HOST]" -echo "MVN_RAWREPO_SERVERID is [$MVN_RAWREPO_SERVERID]" -echo "MVN_DOCKERREGISTRY_DAILY is [$MVN_DOCKERREGISTRY_DAILY]" -echo "MVN_DOCKERREGISTRY_RELEASE is [$MVN_DOCKERREGISTRY_RELEASE]" +# This is the base for where "deploy" will upload +# MVN_NEXUSPROXY is set in the pom.xml +REPO=$MVN_NEXUSPROXY/content/sites/raw/$MVN_PROJECT_GROUPID +TIMESTAMP=$(date +%C%y%m%dT%H%M%S) +export BUILD_NUMBER="${TIMESTAMP}" -source "${PROJECT_ROOT}"/mvn-phase-lib.sh +shift 2 -# Customize the section below for each project case $MVN_PHASE in clean) echo "==> clean phase script" clean_templated_files clean_tox_files - rm -rf ./venv-* ./*.wgn + rm -rf ./venv-* ./*.wgn ./site ./coverage.xml ./xunit-results.xml ;; generate-sources) echo "==> generate-sources phase script" @@ -104,6 +68,9 @@ compile) ;; test) echo "==> test phase script" + set +e + run_tox_test + set -e ;; package) echo "==> package phase script" @@ -113,30 +80,19 @@ install) ;; deploy) echo "==> deploy phase script" - case $MVN_PROJECT_MODULEID in - platformdoc) - set -x - CURDIR=$(pwd) - virtualenv ./venv-doc - source ./venv-doc/bin/activate - pip install --upgrade pip - pip install --upgrade mkdocs mkdocs-material - pip freeze - - mkdocs build - build_and_push_docker - deactivate - rm -rf ./venv-doc - - # build docker image from Docker file (under module dir) and push to registry - build_and_push_docker + dcae-cli) + ;; + component-json-schemas) + JSON_FILES_WITH_PATH=$(find . -name *json) + for JSON_FILE in $JSON_FILES_WITH_PATH; do + upload_raw_file "$JSON_FILE" + done ;; *) - echo "====> unknown mvn project module" + #generate_pypirc_then_publish ;; esac - ;; *) echo "==> unprocessed phase" diff --git a/pom.xml b/pom.xml index 0c0bde9..9c0c029 100644 --- a/pom.xml +++ b/pom.xml @@ -22,8 +22,8 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. 4.0.0 - org.onap.oparent - oparent + org.onap.dcaegen2 + root 1.0.0-SNAPSHOT - org.onap.dcaegen2.platform + org.onap.dcaegen2.platform.cli cli - dcaegen2-platform-cli + dcaegen2-platform-cli-cli 1.0.0-SNAPSHOT http://maven.apache.org pom dcae-cli + component-json-schemas UTF-8 true - . + */ + **/xunit-results.xml + **/coverage.xml @@ -142,15 +145,20 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. ${session.executionRootDirectory}/mvn-phase-script.sh - ${parent.groupId} - ${parent.artifactId} - ${parent.version} + + ${project.groupId} + ${project.artifactId} + ${project.version} ${onap.nexus.url} ${onap.nexus.rawrepo.baseurl.upload} ${onap.nexus.rawrepo.baseurl.download} ${onap.nexus.rawrepo.serverid} - ${onap.nexus.dockerregistry.daily} + ${onap.nexus.dockerregistry.snapshot} ${onap.nexus.dockerregistry.release} + ${onap.nexus.dockerregistry.snapshot.serverid} + ${onap.nexus.dockerregistry.release.serverid} + ${onap.nexus.pypiserver.baseurl} + ${onap.nexus.pypiserver.serverid} -- cgit 1.2.3-korg