This repository has been archived on 2025-12-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
studio-se-master/tools/scripts/test_modular_builds.xml
2015-01-13 18:58:18 +01:00

87 lines
3.2 KiB
XML

<project name="proj" default="do">
<path id="project.classpath">
</path>
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="project.classpath" />
<property name="repoRootDir" value="C:/builds/studio" />
<property name="m2GroupDir" value="C:/Users/iwang/.m2/repository/org/talend/studio" />
<target name="do">
<delete file="./build_modules_run.log"/>
<delete file="./build_modules_success.log"/>
<delete file="./build_modules_failed.log"/>
<delete dir="./logs"/>
<for list="tbd-studio-ee,tbd-studio-se,tcommon-studio-ee,tcommon-studio-se,tdi-studio-ee,tdi-studio-se,tdq-studio-ee,tdq-studio-se,tesb-studio-ee,tesb-studio-se,tmdm-common,tmdm-studio-ee,tmdm-studio-se" param="repoPomDir">
<sequential>
<echo>Repository POM @{repoPomDir}</echo>
<var name="pomContents" unset="true" />
<loadfile property="pomContents" srcFile="${repoRootDir}/@{repoPomDir}/pom.xml">
<filterchain>
<linecontains>
<contains value="&lt;module&gt;"/>
</linecontains>
</filterchain>
</loadfile>
<if>
<not><contains string="@{repoPomDir}" substring=".nl" /></not>
<then>
<for list="${pomContents}" param="moduleLine" delimiter="${line.separator}">
<sequential>
<propertyregex property="modulePath" regexp="&lt;module&gt;(.*)&lt;/module&gt;" select="\1" input="@{moduleLine}" override="true" />
<if>
<available file="${repoRootDir}/@{repoPomDir}/${modulePath}/pom.xml" />
<then>
<echo>Module POM @{repoPomDir}/${modulePath}</echo>
<echo file="./build_modules_run.log" append="true">@{repoPomDir}/${modulePath}${line.separator}</echo>
<antcall target="buildModule" >
<param name="moduleDir" value="${repoRootDir}/@{repoPomDir}/${modulePath}"/>
<param name="repo" value="@{repoPomDir}"/>
<param name="module" value="${modulePath}"/>
</antcall>
</then>
</if>
</sequential>
</for>
</then>
</if>
</sequential>
</for>
</target>
<target name="buildModule">
<delete file="${m2GroupDir}" />
<echo>Deleting ${m2GroupDir}</echo>
<var name="result" unset="true" />
<var name="log" unset="true" />
<if>
<os family="windows" />
<then>
<exec executable="cmd" dir="${moduleDir}" outputproperty="log" resultproperty="result" failonerror="false">
<arg line="/c mvn clean package"/>
</exec>
</then>
<else>
<exec executable="mvn" dir="${moduleDir}" outputproperty="log" resultproperty="result" failonerror="false">
<arg line="-U clean package"/>
</exec>
</else>
</if>
<echo>modulePath ${modulePath}</echo>
<var name="moduleName" unset="true" />
<basename file="${modulePath}" property="moduleName" />
<echo>moduleName ${moduleName}</echo>
<if>
<not><equals arg1="${result}" arg2="0"/></not>
<then>
<mkdir dir="./logs/failed" />
<echo file="./logs/failed/build_${moduleName}.log">${log}</echo>
<echo>FAILED</echo>
</then>
<else>
<echo file="./build_modules_success.log" append="true">${repo}/${module}${line.separator}</echo>
<echo file="./logs/build_success.log" append="true">${log}</echo>
</else>
</if>
</target>
</project>