diff options
author | vrvarma <vikas.varma@att.com> | 2020-03-17 10:58:26 -0400 |
---|---|---|
committer | vrvarma <vikas.varma@att.com> | 2020-03-17 10:58:54 -0400 |
commit | 0e4e5fcf2bb2784ba748bede15be644af0537c8d (patch) | |
tree | 011fa5a8c77557ae8894554f5ffddb126b5fecd8 | |
parent | f71964798d461c4378e74c2f4d4ca8e865673b4a (diff) |
Build changes to generate docker staging images for optf-has
Change-Id: I4e9fa87c7b7aed47d73c9a2f39f2f893a57a731a
Signed-off-by: vrvarma <vikas.varma@att.com>
Issue-ID: OPTFRA-718
-rw-r--r-- | conductor/pom.xml | 66 | ||||
-rw-r--r-- | pom.xml | 5 | ||||
-rw-r--r-- | script/TagVersion.groovy | 45 |
3 files changed, 116 insertions, 0 deletions
diff --git a/conductor/pom.xml b/conductor/pom.xml index e914da3..5188397 100644 --- a/conductor/pom.xml +++ b/conductor/pom.xml @@ -1,6 +1,7 @@ <?xml version="1.0"?> <!-- Copyright (c) 2018 Intel Corporation. All rights reserved. + Copyright (c) 2020 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 @@ -69,6 +70,71 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <phase>validate</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source>${project.basedir}/../script/TagVersion.groovy</source> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>0.26.0</version> + <configuration> + <verbose>true</verbose> + <apiVersion>1.23</apiVersion> + <images> + <image> + <name>${image.namespace}</name> + <alias>optf-has</alias> + <build> + <cleanup>true</cleanup> + <tags> + <tag>latest</tag> + <tag>${project.docker.latesttagtimestamp.version}</tag> + <tag>${project.docker.latesttag.version}</tag> + </tags> + + <dockerFile>${project.basedir}/docker/Dockerfile</dockerFile> + <args> + <MVN_ARTIFACT_VERSION>${project.version}</MVN_ARTIFACT_VERSION> + <REPO>${project.repo}</REPO> + </args> + </build> + </image> + </images> + </configuration> + <executions> + <execution> + <id>generate-images</id> + <phase>install</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + <execution> + <id>push-images</id> + <phase>deploy</phase> + <goals> + <goal>build</goal> + <goal>push</goal> + </goals> + <configuration> + <image>${image.namespace}:%l</image> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project> @@ -48,6 +48,11 @@ <sonar.exclusions>**/tests/**,setup.py,**/lib/**</sonar.exclusions> <sonar.test.inclusions>**/tests/**.py</sonar.test.inclusions> <sonar.test.exclusions>**/**.py,setup.py,**/lib/**</sonar.test.exclusions> + <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> + <has.build.timestamp>${maven.build.timestamp}</has.build.timestamp> + <has.project.version>${project.version}</has.project.version> + <has.docker.repository>nexus3.onap.org:10003</has.docker.repository> + <image.namespace>${has.docker.repository}/onap/optf-has</image.namespace> </properties> <build> diff --git a/script/TagVersion.groovy b/script/TagVersion.groovy new file mode 100644 index 0000000..468b2d4 --- /dev/null +++ b/script/TagVersion.groovy @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP HAS + * ================================================================================ + * Copyright (C) 2020 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============================================ + * =================================================================== + * + */ + +package org.onap.has.maven.scripts + +println project.properties['has.project.version'] + +def versionTag +if ( project.properties['has.project.version'] != null ) { + versionArray = project.properties['has.project.version'].split('\\.|-'); + versionTag = versionArray[0] + '.' + versionArray[1] + '.' + versionArray[2] + timestamp = project.properties['has.build.timestamp'] +} + +if ( project.properties['has.project.version'].endsWith("-SNAPSHOT") ) { + project.properties['project.docker.latesttag.version']=versionTag + "-SNAPSHOT-latest"; + project.properties['project.docker.latesttagtimestamp.version']=versionTag + "-SNAPSHOT-"+timestamp; + project.properties['project.repo'] = 'snapshots' +} else { + project.properties['project.docker.latesttag.version']=versionTag + "-STAGING-latest"; + project.properties['project.docker.latesttagtimestamp.version']=versionTag + "-STAGING-"+timestamp; + project.properties['project.repo'] = 'releases' +} + +println 'New Tag for docker: ' + project.properties['project.docker.latesttag.version'];
\ No newline at end of file |