<?xml version="1.0" encoding="UTF-8"?>
<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">
  <parent>
    <artifactId>oom-certservice</artifactId>
    <groupId>org.onap.oom.platform.cert-service</groupId>
    <version>2.3.1-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>oom-certservice-k8s-external-provider</artifactId>
  <packaging>mvn-golang</packaging>

  <properties>
    <version.mvn-clean-plugin>3.1.0</version.mvn-clean-plugin>
    <version.mvn-golang-wrapper-plugin>2.3.5</version.mvn-golang-wrapper-plugin>
    <sonar.go.coverage.reportPaths>bin/coverage.out</sonar.go.coverage.reportPaths>
    <sonar.exclusions>**/*_test.go, **/testdata/*</sonar.exclusions>
    <sonar-go-plugin.version>1.1.1.2000</sonar-go-plugin.version>
  </properties>


  <dependencies>
    <dependency>
      <groupId>org.sonarsource.go</groupId>
      <artifactId>sonar-go-plugin</artifactId>
      <version>${sonar-go-plugin.version}</version>
    </dependency>
  </dependencies>

  <build>
    <!--Changing standard Maven project source structure to make it Go compatible-->
    <sourceDirectory>${basedir}</sourceDirectory>
    <directory>${basedir}${file.separator}bin</directory>

    <defaultGoal>clean package</defaultGoal>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>${version.mvn-clean-plugin}</version>
        <configuration>
          <followSymLinks>false</followSymLinks>
          <excludeDefaultDirectories>true</excludeDefaultDirectories>
          <filesets>
            <fileset>
              <directory>${basedir}${file.separator}bin</directory>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.igormaznitsa</groupId>
        <artifactId>mvn-golang-wrapper</artifactId>
        <version>${version.mvn-golang-wrapper-plugin}</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>coverage</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <testFlags>
                <flag>-coverprofile=bin/coverage.out</flag>
              </testFlags>
            </configuration>
          </execution>
          <execution>
            <id>install</id>
            <goals>
              <goal>install</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>

    <profile>
      <id>docker-staging</id>
      <properties>
        <docker.tag>${project.version}-STAGING-${maven.build.timestamp}</docker.tag>
        <docker.latest.tag>${project.version}-STAGING-latest</docker.latest.tag>
      </properties>
    </profile>

    <profile>
      <id>docker</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <os.detected.name>linux</os.detected.name>
        <os.detected.arch>x86_64</os.detected.arch>
        <os.detected.classifier>${os.detected.name}-${os.detected.arch}</os.detected.classifier>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>${docker-maven-plugin.version}</version>
            <executions>
              <execution>
                <id>docker-build-image</id>
                <phase>package</phase>
                <goals>
                  <goal>build</goal>
                </goals>
              </execution>
              <execution>
                <id>docker-push-image</id>
                <phase>deploy</phase>
                <goals>
                  <goal>push</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <skipPush>${skipDockerPush}</skipPush>
              <verbose>true</verbose>
              <imagePullPolicy>IfNotPresent</imagePullPolicy>
              <images>
                <image>
                  <alias>${project.artifactId}</alias>
                  <name>${docker-image.namespace}/${docker-image.name}:${docker-image.tag.latest}
                  </name>
                  <registry>${docker-image.registry}</registry>
                  <build>
                    <dockerFileDir>${project.basedir}</dockerFileDir>
                    <tags>
                      <tag>${project.version}-${maven.build.timestamp}Z</tag>
                    </tags>
                  </build>
                </image>
              </images>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>


</project>