diff options
-rwxr-xr-x | mvn-phase-script.sh | 104 | ||||
-rw-r--r-- | pnda-bootstrap-container/Dockerfile | 34 | ||||
-rw-r--r-- | pnda-bootstrap-container/README.md | 8 | ||||
-rw-r--r-- | pnda-bootstrap-container/pom.xml | 256 | ||||
-rw-r--r-- | pnda-mirror-container/Dockerfile | 47 | ||||
-rw-r--r-- | pnda-mirror-container/README.md | 23 | ||||
-rw-r--r-- | pnda-mirror-container/pnda-5.0-maint.patch | 25 | ||||
-rw-r--r-- | pnda-mirror-container/pom.xml | 256 | ||||
-rw-r--r-- | pom.xml | 2 |
9 files changed, 755 insertions, 0 deletions
diff --git a/mvn-phase-script.sh b/mvn-phase-script.sh new file mode 100755 index 0000000..590ed4c --- /dev/null +++ b/mvn-phase-script.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +# ================================================================================ +# Copyright (c) 2017-2018 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========================================================= +# + + +set -ex + +echo "running script: [$0] for module [$1] at stage [$2]" + +MVN_PROJECT_MODULEID="$1" +MVN_PHASE="$2" +PROJECT_ROOT=$(dirname $0) + + +echo "MVN_RELEASE_TAG is set to [$MVN_RELEASE_TAG]" +RELEASE_TAG=${MVN_RELEASE_TAG:-R4} +if [ "$RELEASE_TAG" != "R1" ]; then + RELEASE_TAGGED_DIR="${RELEASE_TAG}/" +else + RELEASE_TAGGED_DIR="" +fi +if ! wget -O ${PROJECT_ROOT}/mvn-phase-lib.sh \ + "$MVN_RAWREPO_BASEURL_DOWNLOAD"/org.onap.dcaegen2.utils/${RELEASE_TAGGED_DIR}scripts/mvn-phase-lib.sh; then + echo "Fail to download mvn-phase-lib.sh" + exit 1 +fi +source "${PROJECT_ROOT}"/mvn-phase-lib.sh + + +TIMESTAMP=$(date +%C%y%m%dT%H%M%S) +export BUILD_NUMBER="${TIMESTAMP}" +shift 2 + +case $MVN_PHASE in +clean) + echo "==> clean phase script" + clean_templated_files + clean_tox_files + rm -rf ./venv-* ./*.wgn ./site ./coverage.xml ./xunit-results.xml + ;; +generate-sources) + echo "==> generate-sources phase script" + expand_templates + ;; +compile) + echo "==> compile phase script" + ;; +test) + echo "==> test phase script" + ;; +package) + echo "==> package phase script" + ;; +install) + echo "==> install phase script" + case $MVN_PROJECT_MODULEID in + bootstrap) + upload_files_of_extension sh + ;; + esac + ;; +deploy) + echo "==> deploy phase script" + + case $MVN_PROJECT_MODULEID in + bootstrap) + # build docker image from Docker file (under module dir) and push to registry + upload_files_of_extension sh + build_and_push_docker + ;; + k8s-bootstrap-container|tca-cdap-container|cm-container|redis-cluster-container|healthcheck-container|pnda-mirror-container|pnda-bootstrap-container|tls-init-container|consul-loader-container) + build_and_push_docker + ;; + scripts|cloud_init|heat) + # upload all sh file under the root of module + upload_files_of_extension_recursively sh $MVN_PROJECT_MODULEID + upload_files_of_extension_recursively py $MVN_PROJECT_MODULEID + upload_files_of_extension_recursively yaml $MVN_PROJECT_MODULEID + ;; + *) + echo "====> unknown mvn project module" + ;; + esac + ;; +*) + echo "==> unprocessed phase" + ;; +esac + diff --git a/pnda-bootstrap-container/Dockerfile b/pnda-bootstrap-container/Dockerfile new file mode 100644 index 0000000..4fefa8a --- /dev/null +++ b/pnda-bootstrap-container/Dockerfile @@ -0,0 +1,34 @@ +# ============LICENSE_START======================================================= +# org.onap.dcae +# ================================================================================ +# Copyright (c) 2018 Cisco Systems. 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========================================================= + +FROM python:2.7.15 as build + +ARG PNDACLITAG=release/5.0 +ARG PLATFORMSALTTAG=release/5.0 + +RUN git clone -b $PNDACLITAG https://github.com/pndaproject/pnda-cli.git +RUN git clone -b $PLATFORMSALTTAG https://github.com/pndaproject/platform-salt.git + +RUN pip2 install --no-cache-dir -r pnda-cli/cli/requirements.txt --install-option="--prefix=/install" + +FROM python:2.7.15-alpine3.8 +COPY --from=build /install /usr/local +COPY --from=build /pnda-cli /pnda-cli +COPY --from=build /platform-salt /platform-salt + +RUN apk add --no-cache curl jq openssl openssh diff --git a/pnda-bootstrap-container/README.md b/pnda-bootstrap-container/README.md new file mode 100644 index 0000000..43e089e --- /dev/null +++ b/pnda-bootstrap-container/README.md @@ -0,0 +1,8 @@ +# PNDA Boostrap container +## Purpose +The artifacts in this directory build a Docker image including the PNDA CLI. +The CLI allows the bootstrap of a PNDA container. + +## Running the Container +The container is intended to be launched via a Helm chart as part +of the ONAP deployment process, guided by OOM. diff --git a/pnda-bootstrap-container/pom.xml b/pnda-bootstrap-container/pom.xml new file mode 100644 index 0000000..1b173ed --- /dev/null +++ b/pnda-bootstrap-container/pom.xml @@ -0,0 +1,256 @@ +<?xml version="1.0"?> +<!-- +================================================================================ +Copyright (c) 2018 Cisco Systems. 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========================================================= + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.dcaegen2.analytics.pnda</groupId> + <artifactId>pnda-utils</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + <groupId>org.onap.dcaegen2.deployments</groupId> + <artifactId>pnda-bootstrap-container</artifactId> + <name>dcaegen2-deployments-pnda-bootstrap-container</name> + <version>5.0.0</version> + <url>http://maven.apache.org</url> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <sonar.skip>true</sonar.skip> + <sonar.sources>.</sonar.sources> + <sonar.language>py</sonar.language> + <sonar.pluginName>Python</sonar.pluginName> + <sonar.inclusions>**/*.py</sonar.inclusions> + + <onap.nexus.url>https://nexus.onap.org</onap.nexus.url> + <!-- properties for Nexus raw repo --> + <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload> + <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download> + <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid> + <!-- properties for Nexus Docker registry --> + <onap.nexus.dockerregistry.snapshot>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot> + <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release> + <onap.nexus.dockerregistry.snapshot.serverid>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot.serverid> + <onap.nexus.dockerregistry.release.serverid>nexus3.onap.org:10002</onap.nexus.dockerregistry.release.serverid> + <!-- properties for Pypi server --> + <onap.nexus.pypiserver.baseurl>https://nexus3.onap.org/repository/PyPi</onap.nexus.pypiserver.baseurl> + <onap.nexus.pypiserver.serverid>onap-pypi</onap.nexus.pypiserver.serverid> + </properties> + <build> + <finalName>${project.artifactId}-${project.version}</finalName> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.sonatype.plugins</groupId> + <artifactId>nexus-staging-maven-plugin</artifactId> + <version>1.6.7</version> + <configuration> + <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <!-- This version supports the "deployAtEnd" parameter --> + <version>2.8</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- first disable the default Java plugins at various stages --> + <!-- maven-resources-plugin is called during "*resource" phases by default behavior. it prepares + the resources dir. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>2.6</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-compiler-plugin is called during "compile" phases by default behavior. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-jar-plugin is called during "compile" phase by default behavior. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.4</version> + <executions> + <execution> + <id>default-jar</id> + <phase/> + </execution> + </executions> + </plugin> + <!-- maven-install-plugin is called during "install" phase by default behavior. it tries to copy stuff under + target dir to ~/.m2. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>2.4</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-surefire-plugin is called during "test" phase by default behavior. it triggers junit test. + we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.12.4</version> + <configuration> + <skipTests>true</skipTests> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.2.1</version> + <configuration> + <executable>../mvn-phase-script.sh</executable> + <environmentVariables> + <!-- make mvn properties as env for our script --> + <MVN_PROJECT_GROUPID>${project.groupId}</MVN_PROJECT_GROUPID> + <MVN_PROJECT_ARTIFACTID>${project.artifactId}</MVN_PROJECT_ARTIFACTID> + <MVN_PROJECT_VERSION>${project.version}</MVN_PROJECT_VERSION> + <MVN_NEXUSPROXY>${onap.nexus.url}</MVN_NEXUSPROXY> + <MVN_RAWREPO_BASEURL_UPLOAD>${onap.nexus.rawrepo.baseurl.upload}</MVN_RAWREPO_BASEURL_UPLOAD> + <MVN_RAWREPO_BASEURL_DOWNLOAD>${onap.nexus.rawrepo.baseurl.download}</MVN_RAWREPO_BASEURL_DOWNLOAD> + <MVN_RAWREPO_SERVERID>${onap.nexus.rawrepo.serverid}</MVN_RAWREPO_SERVERID> + <MVN_DOCKERREGISTRY_SNAPSHOT>${onap.nexus.dockerregistry.snapshot}</MVN_DOCKERREGISTRY_SNAPSHOT> + <MVN_DOCKERREGISTRY_RELEASE>${onap.nexus.dockerregistry.release}</MVN_DOCKERREGISTRY_RELEASE> + <MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>${onap.nexus.dockerregistry.snapshot.serverid}</MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID> + <MVN_DOCKERREGISTRY_RELEASE_SERVERID>${onap.nexus.dockerregistry.release.serverid}</MVN_DOCKERREGISTRY_RELEASE_SERVERID> + <MVN_PYPISERVER_BASEURL>${onap.nexus.pypiserver.baseurl}</MVN_PYPISERVER_BASEURL> + <MVN_PYPISERVER_SERVERID>${onap.nexus.pypiserver.serverid}</MVN_PYPISERVER_SERVERID> + </environmentVariables> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <!-- now we configure custom action (calling a script) at various lifecycle phases --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.2.1</version> + <executions> + <execution> + <id>clean phase script</id> + <phase>clean</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>clean</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>generate-sources script</id> + <phase>generate-sources</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>generate-sources</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>compile script</id> + <phase>compile</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>compile</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>package script</id> + <phase>package</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>package</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>test script</id> + <phase>test</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>test</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>install script</id> + <phase>install</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>install</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>deploy script</id> + <phase>deploy</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>deploy</argument> + </arguments> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/pnda-mirror-container/Dockerfile b/pnda-mirror-container/Dockerfile new file mode 100644 index 0000000..ea7e100 --- /dev/null +++ b/pnda-mirror-container/Dockerfile @@ -0,0 +1,47 @@ +# ============LICENSE_START======================================================= +# org.onap.dcae +# ================================================================================ +# Copyright (c) 2018 Cisco Systems. 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========================================================= + +FROM centos:7.5.1804 as build + +ARG PNDARELEASE=release/5.0 +# Can be HDP or CDH +ARG HADOOPDIST=HDP + +RUN yum clean all && rm -rf /var/cache/yum/* && yum install gettext git -y + +RUN git clone -b $PNDARELEASE https://github.com/pndaproject/pnda.git + +COPY pnda-5.0-maint.patch / +WORKDIR /pnda +RUN git apply /pnda-5.0-maint.patch + +WORKDIR /pnda/mirror +# Add the -r flag to mirror rpm packages +RUN ./create_mirror.sh -d $HADOOPDIST -r + +WORKDIR /pnda/build +RUN ./install-build-tools.sh + +RUN yum install bzip2 make which -y +RUN source ./set-pnda-env.sh \ + && PARALLEL="--jobs 1" ./build-pnda.sh RELEASE $PNDARELEASE $HADOOPDIST + +FROM nginx:alpine + +COPY --from=build /pnda/mirror/mirror-dist /usr/share/nginx/html/ +COPY --from=build /pnda/build/pnda-dist /usr/share/nginx/html/ diff --git a/pnda-mirror-container/README.md b/pnda-mirror-container/README.md new file mode 100644 index 0000000..6312439 --- /dev/null +++ b/pnda-mirror-container/README.md @@ -0,0 +1,23 @@ +# PNDA Mirror +## Purpose +The artifacts in this directory build a Docker image based public PNDA mirror +creation scripts. The container have all the needed offline resources to +deploy a PNDA platform. + +## Running the Container +The container is intended to be launched via a Helm chart as part +of the ONAP deployment process, guided by OOM. It can be run directly +into a native Docker environment, using: +``` +docker run --name pnda-mirror -d --restart unless-stopped \ + -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ + -p <some_external_port>:8080 \ + --tmpfs /run \ + --tmpfs /run/lock \ + --security-opt seccomp:unconfined + --cap-add SYS_ADMIN \ + <image_name> +``` + +We also expect that in a Kubernetes environment the external port mapping would not be +needed. diff --git a/pnda-mirror-container/pnda-5.0-maint.patch b/pnda-mirror-container/pnda-5.0-maint.patch new file mode 100644 index 0000000..437b0db --- /dev/null +++ b/pnda-mirror-container/pnda-5.0-maint.patch @@ -0,0 +1,25 @@ +diff --git a/build/upstream-builds/build-gobblin.sh b/build/upstream-builds/build-gobblin.sh +index d191524..34ee0a0 100755 +--- a/build/upstream-builds/build-gobblin.sh ++++ b/build/upstream-builds/build-gobblin.sh +@@ -17,7 +17,7 @@ MODE=${1} + ARG=${2} + HADOOP_DISTRIBUTION=${3} + +-EXCLUDES="-x test" ++EXCLUDES="-x test -x findbugsMain" + set -e + set -x + +diff --git a/mirror/dependencies/pnda-static-file-dependencies.txt b/mirror/dependencies/pnda-static-file-dependencies.txt +index 8f04a87..133e08b 100644 +--- a/mirror/dependencies/pnda-static-file-dependencies.txt ++++ b/mirror/dependencies/pnda-static-file-dependencies.txt +@@ -21,5 +21,5 @@ http://central.maven.org/maven2/org/kitesdk/kite-tools/1.0.0/kite-tools-1.0.0-bi + http://central.maven.org/maven2/org/kitesdk/kite-tools/1.0.0/kite-tools-1.0.0-binary.jar.sha1 + https://releases.hashicorp.com/consul/1.0.3/consul_1.0.3_linux_amd64.zip + https://releases.hashicorp.com/consul/1.0.3/consul_1.0.3_SHA256SUMS +-http://www.apache.org/dist/knox/1.1.0/knox-1.1.0.zip +-http://www.apache.org/dist/knox/1.1.0/knox-1.1.0.zip.sha1 ++http://archive.apache.org/dist/knox/1.1.0/knox-1.1.0.zip ++http://archive.apache.org/dist/knox/1.1.0/knox-1.1.0.zip.sha1 diff --git a/pnda-mirror-container/pom.xml b/pnda-mirror-container/pom.xml new file mode 100644 index 0000000..09a42f0 --- /dev/null +++ b/pnda-mirror-container/pom.xml @@ -0,0 +1,256 @@ +<?xml version="1.0"?> +<!-- +================================================================================ +Copyright (c) 2018 Cisco Systems. 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========================================================= + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.dcaegen2.analytics.pnda</groupId> + <artifactId>pnda-utils</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + <groupId>org.onap.dcaegen2.deployments</groupId> + <artifactId>pnda-mirror-container</artifactId> + <name>dcaegen2-deployments-pnda-mirror-container</name> + <version>5.0.0</version> + <url>http://maven.apache.org</url> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <sonar.skip>true</sonar.skip> + <sonar.sources>.</sonar.sources> + <sonar.language>py</sonar.language> + <sonar.pluginName>Python</sonar.pluginName> + <sonar.inclusions>**/*.py</sonar.inclusions> + + <onap.nexus.url>https://nexus.onap.org</onap.nexus.url> + <!-- properties for Nexus raw repo --> + <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload> + <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download> + <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid> + <!-- properties for Nexus Docker registry --> + <onap.nexus.dockerregistry.snapshot>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot> + <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release> + <onap.nexus.dockerregistry.snapshot.serverid>nexus3.onap.org:10003</onap.nexus.dockerregistry.snapshot.serverid> + <onap.nexus.dockerregistry.release.serverid>nexus3.onap.org:10002</onap.nexus.dockerregistry.release.serverid> + <!-- properties for Pypi server --> + <onap.nexus.pypiserver.baseurl>https://nexus3.onap.org/repository/PyPi</onap.nexus.pypiserver.baseurl> + <onap.nexus.pypiserver.serverid>onap-pypi</onap.nexus.pypiserver.serverid> + </properties> + <build> + <finalName>${project.artifactId}-${project.version}</finalName> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.sonatype.plugins</groupId> + <artifactId>nexus-staging-maven-plugin</artifactId> + <version>1.6.7</version> + <configuration> + <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <!-- This version supports the "deployAtEnd" parameter --> + <version>2.8</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- first disable the default Java plugins at various stages --> + <!-- maven-resources-plugin is called during "*resource" phases by default behavior. it prepares + the resources dir. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>2.6</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-compiler-plugin is called during "compile" phases by default behavior. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-jar-plugin is called during "compile" phase by default behavior. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.4</version> + <executions> + <execution> + <id>default-jar</id> + <phase/> + </execution> + </executions> + </plugin> + <!-- maven-install-plugin is called during "install" phase by default behavior. it tries to copy stuff under + target dir to ~/.m2. we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>2.4</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-surefire-plugin is called during "test" phase by default behavior. it triggers junit test. + we do not need it --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.12.4</version> + <configuration> + <skipTests>true</skipTests> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.2.1</version> + <configuration> + <executable>../mvn-phase-script.sh</executable> + <environmentVariables> + <!-- make mvn properties as env for our script --> + <MVN_PROJECT_GROUPID>${project.groupId}</MVN_PROJECT_GROUPID> + <MVN_PROJECT_ARTIFACTID>${project.artifactId}</MVN_PROJECT_ARTIFACTID> + <MVN_PROJECT_VERSION>${project.version}</MVN_PROJECT_VERSION> + <MVN_NEXUSPROXY>${onap.nexus.url}</MVN_NEXUSPROXY> + <MVN_RAWREPO_BASEURL_UPLOAD>${onap.nexus.rawrepo.baseurl.upload}</MVN_RAWREPO_BASEURL_UPLOAD> + <MVN_RAWREPO_BASEURL_DOWNLOAD>${onap.nexus.rawrepo.baseurl.download}</MVN_RAWREPO_BASEURL_DOWNLOAD> + <MVN_RAWREPO_SERVERID>${onap.nexus.rawrepo.serverid}</MVN_RAWREPO_SERVERID> + <MVN_DOCKERREGISTRY_SNAPSHOT>${onap.nexus.dockerregistry.snapshot}</MVN_DOCKERREGISTRY_SNAPSHOT> + <MVN_DOCKERREGISTRY_RELEASE>${onap.nexus.dockerregistry.release}</MVN_DOCKERREGISTRY_RELEASE> + <MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID>${onap.nexus.dockerregistry.snapshot.serverid}</MVN_DOCKERREGISTRY_SNAPSHOT_SERVERID> + <MVN_DOCKERREGISTRY_RELEASE_SERVERID>${onap.nexus.dockerregistry.release.serverid}</MVN_DOCKERREGISTRY_RELEASE_SERVERID> + <MVN_PYPISERVER_BASEURL>${onap.nexus.pypiserver.baseurl}</MVN_PYPISERVER_BASEURL> + <MVN_PYPISERVER_SERVERID>${onap.nexus.pypiserver.serverid}</MVN_PYPISERVER_SERVERID> + </environmentVariables> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <!-- now we configure custom action (calling a script) at various lifecycle phases --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.2.1</version> + <executions> + <execution> + <id>clean phase script</id> + <phase>clean</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>clean</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>generate-sources script</id> + <phase>generate-sources</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>generate-sources</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>compile script</id> + <phase>compile</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>compile</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>package script</id> + <phase>package</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>package</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>test script</id> + <phase>test</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>test</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>install script</id> + <phase>install</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>install</argument> + </arguments> + </configuration> + </execution> + <execution> + <id>deploy script</id> + <phase>deploy</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.artifactId}</argument> + <argument>deploy</argument> + </arguments> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> @@ -36,6 +36,8 @@ limitations under the License. <modules> <module>pnda-ztt-app</module> + <module>pnda-mirror-container</module> + <module>pnda-bootstrap-container</module> </modules> </project> |