<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>

  <artifactId>onboarding-fe</artifactId>
  <name>onboarding-ui-war</name>
  <packaging>war</packaging>

  <parent>
    <groupId>org.openecomp.sdc</groupId>
    <artifactId>sdc-onboarding</artifactId>
    <version>1.10.2-SNAPSHOT</version>
    <relativePath>../onboarding</relativePath>
  </parent>

  <properties>
    <app.context.path>onboarding</app.context.path>
    <jest.command/>
  </properties>

  <!-- ============================================= -->
  <!-- Profile for windows to run jest one by the other due to current defect in node-graceful-js creating race condition -->
  <!-- https://github.com/isaacs/node-graceful-fs/pull/119 -->
  <!-- ============================================= -->
  <profiles>
    <profile>
      <id>jest-windows-profile</id>
      <activation>
        <os>
          <family>windows</family>
        </os>
      </activation>
      <properties>
        <jest.command>--runInBand</jest.command>
      </properties>
    </profile>
  </profiles>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <executions>
          <execution>
            <id>clean.dist.folder</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
            <configuration>
              <filesets>
                <fileset>
                  <directory>${basedir}/dist</directory>
                </fileset>
                <fileset>
                  <directory>${basedir}/coverage</directory>
                </fileset>
                <fileset>
                  <directory>${basedir}/../dox-sequence-diagram-ui/dist</directory>
                </fileset>
              </filesets>
            </configuration>
          </execution>
          <execution>
            <id>clean.nodemodules.folder</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
            <configuration>
              <skip>${skipUICleanup}</skip>
              <filesets>
                <fileset>
                  <directory>${basedir}/node_modules</directory>
                </fileset>
                <fileset>
                  <directory>${basedir}/../dox-sequence-diagram-ui/node_modules
                  </directory>
                </fileset>
              </filesets>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- ============================================= -->
      <!-- Build the UI module node code -->
      <!-- ============================================= -->
      <plugin>
        <groupId>com.github.eirslett</groupId>
        <artifactId>frontend-maven-plugin</artifactId>
        <configuration>
          <installDirectory>${project.parent.parent.basedir}</installDirectory>
        </configuration>

        <executions>

          <execution>
            <id>install node and yarn</id>
            <goals>
              <goal>install-node-and-yarn</goal>
            </goals>
            <configuration>
              <nodeVersion>v10.17.0</nodeVersion>
              <yarnVersion>v1.19.1</yarnVersion>
            </configuration>
          </execution>

          <execution>
            <id>yarn install in dox-sequence-diagram-ui</id>
            <goals>
              <goal>yarn</goal>
            </goals>
            <configuration>
              <workingDirectory>${project.basedir}/../dox-sequence-diagram-ui</workingDirectory>
              <arguments>install</arguments>
            </configuration>
          </execution>
          <execution>
            <id>yarn build in dox-sequence-diagram-ui</id>
            <goals>
              <goal>yarn</goal>
            </goals>
            <configuration>
              <workingDirectory>${project.basedir}/../dox-sequence-diagram-ui</workingDirectory>
              <yarnInheritsProxyConfigFromMaven>false</yarnInheritsProxyConfigFromMaven>
              <arguments>build</arguments>
            </configuration>
          </execution>

          <execution>
            <id>yarn install</id>
            <goals>
              <goal>yarn</goal>
            </goals>
            <configuration>
              <arguments>install</arguments>
            </configuration>
          </execution>

          <execution>
            <id>yarn build</id>
            <goals>
              <goal>yarn</goal>
            </goals>
            <configuration>
              <yarnInheritsProxyConfigFromMaven>false</yarnInheritsProxyConfigFromMaven>
              <arguments>build --version=${project.version} --env.version=${project.version} --env.language=en</arguments>
            </configuration>
          </execution>
          <execution>
            <id>ui test</id>
            <goals>
              <goal>yarn</goal>
            </goals>
            <configuration>
              <yarnInheritsProxyConfigFromMaven>false</yarnInheritsProxyConfigFromMaven>
              <arguments>test-build ${jest.command}</arguments>
              <skip>${maven.test.skip}</skip>
            </configuration>
            <!-- for some reason does not fail on test phase -->
            <phase>test</phase>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webResources>
            <resource>
              <directory>${basedir}/dist</directory>
              <includes>
                <include>*.html</include>
                <include>*.js</include>
              </includes>
            </resource>
            <resource>
              <directory>${basedir}/src</directory>
              <includes>
                <include>**/*.json</include>
              </includes>
            </resource>
            <resource>
              <directory>${basedir}/external-resources/healthcheck/</directory>
              <targetPath>v1.0</targetPath>
              <filtering>true</filtering>
              <includes>
                <include>healthcheck</include>
              </includes>
            </resource>
            <resource>
              <directory>${basedir}/webapp-onboarding</directory>
              <filtering>true</filtering>
            </resource>
          </webResources>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
