aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Puzikov <dmitry.puzikov@tieto.com>2019-07-24 11:42:29 +0200
committerDmitry Puzikov <dmitry.puzikov@tieto.com>2019-08-29 12:28:40 +0200
commit9a304415d90b8dca5e319f3a24b1733df3c1d9d3 (patch)
tree27b33b75cd2db15c37119be946a44e34ab322b20
parent4fe5bfbbffa08870565d02ecbd7c31de8fe4b52c (diff)
Fixed project version parsing
Change-Id: I9192d12bcb6d2f4b93ebd2835cf3d9b7dd1f2ad5 Issue-ID: INT-1151 Signed-off-by: Dmitry Puzikov <dmitry.puzikov@tieto.com>
-rw-r--r--champ-service/pom.xml172
-rw-r--r--champ-service/src/main/assembly/descriptor.xml50
-rw-r--r--champ-service/src/main/docker/Dockerfile21
3 files changed, 171 insertions, 72 deletions
diff --git a/champ-service/pom.xml b/champ-service/pom.xml
index 4fa66b7..f2b8463 100644
--- a/champ-service/pom.xml
+++ b/champ-service/pom.xml
@@ -33,8 +33,6 @@ limitations under the License.
<artifactId>champ-service</artifactId>
<properties>
- <docker.location>${basedir}/target</docker.location>
- <docker.name>champ</docker.name>
<onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
<common.logging.groupid>org.onap.aai.logging-service</common.logging.groupid>
<common.logging.version>1.2.2</common.logging.version>
@@ -45,6 +43,18 @@ limitations under the License.
<!-- Minimum code coverage percentage. Please update this figure as coverage increases to prevent any drops in
coverage caused by new changes. Note that this figure cannot be lower than the ONAP requirement of 0.55 -->
<jacoco.line.coverage.limit>0.16</jacoco.line.coverage.limit>
+
+ <!-- docker related properties -->
+ <docker.image.name>champ</docker.image.name>
+ <docker.fabric.version>0.28.0</docker.fabric.version>
+ <aai.docker.version>1.0.0</aai.docker.version>
+ <aai.build.directory>${project.build.directory}/${project.artifactId}-build/
+ </aai.build.directory>
+ <aai.docker.namespace>onap</aai.docker.namespace>
+ <aai.base.image>alpine</aai.base.image>
+ <aai.base.image.version>1.6.0</aai.base.image.version>
+ <!-- This will be used for the docker images as the default format of maven build has issues -->
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
</properties>
<dependencyManagement>
@@ -123,15 +133,14 @@ limitations under the License.
<version>3.22.0-GA</version>
</dependency>
-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
<exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </exclusion>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-tomcat</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -153,9 +162,9 @@ limitations under the License.
<version>2.6.2</version>
</dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
</dependency>
<dependency>
@@ -279,44 +288,19 @@ limitations under the License.
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.7</version>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/descriptor.xml</descriptor>
+ </descriptors>
+ </configuration>
<executions>
<execution>
- <id>copy-docker-file</id>
+ <id>make-assembly</id>
<phase>package</phase>
<goals>
- <goal>copy-resources</goal>
+ <goal>single</goal>
</goals>
- <configuration>
- <outputDirectory>target</outputDirectory>
- <overwrite>true</overwrite>
- <resources>
- <resource>
- <directory>${basedir}/src/main/docker</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- <resource>
- <directory>${basedir}/src/main/bin/</directory>
- </resource>
- <resource>
- <directory>../champ-service-deps-janus/target/</directory>
- </resource>
- <resource>
- <directory>../champ-service-deps-titan/target/</directory>
- </resource>
- <resource>
- <directory>${basedir}</directory>
- <includes>
- <include>**/dynamic/**/*</include>
- </includes>
- </resource>
- </resources>
- </configuration>
</execution>
</executions>
</plugin>
@@ -361,26 +345,104 @@ limitations under the License.
<build>
<plugins>
<plugin>
- <groupId>com.spotify</groupId>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <phase>pre-clean</phase>
+ <id>parse-version</id>
+ <goals>
+ <goal>parse-version</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ def userAaiBaseImage = session.userProperties['aai.base.image']
+ def userAaiCommonVersion = session.userProperties['aai.base.image.version']
+ if (userAaiCommonVersion != null) {
+ project.properties['aai.base.image.version'] = userAaiCommonVersion
+ }
+ if (userAaiBaseImage != null) {
+ project.properties['aai.base.image'] = userAaiBaseImage
+ }
+ log.info 'Base image flavour: ' + project.properties['aai.base.image']
+ log.info 'Base image version: ' + project.properties['aai.base.image.version']
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
- <version>0.4.11</version>
+ <version>${docker.fabric.version}</version>
<configuration>
<verbose>true</verbose>
- <serverId>docker-hub</serverId>
- <imageName>${docker.push.registry}/onap/${docker.name}</imageName>
- <dockerDirectory>${docker.location}</dockerDirectory>
- <imageTags>
- <imageTag>latest</imageTag>
- </imageTags>
- <forceTags>true</forceTags>
+ <apiVersion>1.23</apiVersion>
+ <images>
+ <image>
+ <name>${docker.push.registry}/${aai.docker.namespace}/${docker.image.name}:%l
+ </name>
+ <build>
+ <filter>@</filter>
+ <tags>
+ <tag>latest</tag>
+ <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag>
+ <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag>
+ </tags>
+ <cleanup>try</cleanup>
+ <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
+ <assembly>
+ <inline>
+ <fileSets>
+ <fileSet>
+ <directory>${aai.build.directory}</directory>
+ <outputDirectory>/${project.artifactId}</outputDirectory>
+ </fileSet>
+ </fileSets>
+ </inline>
+ </assembly>
+ </build>
+ </image>
+ </images>
</configuration>
<executions>
<execution>
- <id>default</id>
+ <id>clean-images</id>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>remove</goal>
+ </goals>
+ <configuration>
+ <removeAll>true</removeAll>
+ </configuration>
+ </execution>
+ <execution>
+ <id>generate-images</id>
<phase>package</phase>
<goals>
<goal>build</goal>
- </goals>
+ </goals>
+ </execution>
+ <execution>
+ <id>push-images</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>push</goal>
+ </goals>
</execution>
</executions>
</plugin>
@@ -388,6 +450,4 @@ limitations under the License.
</build>
</profile>
</profiles>
-
-
</project>
diff --git a/champ-service/src/main/assembly/descriptor.xml b/champ-service/src/main/assembly/descriptor.xml
new file mode 100644
index 0000000..886ddae
--- /dev/null
+++ b/champ-service/src/main/assembly/descriptor.xml
@@ -0,0 +1,50 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>build</id>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <formats>
+ <format>dir</format>
+ </formats>
+ <fileSets>
+ <fileSet>
+ <directory>${project.basedir}/src/main/bin</directory>
+ <outputDirectory>/bin</outputDirectory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>**/dynamic/**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/../champ-service-deps-janus/target/</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>**/graph-deps/**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/../champ-service-deps-titan/target/</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>**/graph-deps/**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.directory}</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>Dockerfile</exclude>
+ <exclude>*.sh</exclude>
+ </excludes>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/champ-service/src/main/docker/Dockerfile b/champ-service/src/main/docker/Dockerfile
index 79791d8..df0ef2d 100644
--- a/champ-service/src/main/docker/Dockerfile
+++ b/champ-service/src/main/docker/Dockerfile
@@ -1,26 +1,15 @@
-FROM ubuntu:14.04
+FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@
ARG MICRO_HOME=/opt/app/champ-service
ARG BIN_HOME=$MICRO_HOME/bin
ARG GRAPHLIB_HOME=$MICRO_HOME/graph-deps
-RUN apt-get update
-
-# Install and setup java8
-RUN apt-get update && apt-get install -y software-properties-common
-RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk
-ENV JAVA_HOME usr/lib/jvm/java-8-openjdk-amd64
-RUN export JAVA_HOME
-
# Build up the deployment folder structure
RUN mkdir -p $MICRO_HOME
-COPY champ-service.jar $MICRO_HOME/
-RUN mkdir -p $GRAPHLIB_HOME
-ADD graph-deps $GRAPHLIB_HOME
-RUN mkdir -p $BIN_HOME
-COPY *.sh $BIN_HOME
-RUN chmod 755 $BIN_HOME/*
-RUN ln -s /logs $MICRO_HOME/logs
+WORKDIR $MICRO_HOME
+COPY /maven/champ-service/ .
+RUN chmod 755 $BIN_HOME/* \
+ && ln -snf /logs $MICRO_HOME/logs
EXPOSE 9522 9522