Author: nickboldt
Date: 2011-04-21 12:16:39 -0400 (Thu, 21 Apr 2011)
New Revision: 30706
Modified:
trunk/requirements/build.xml
Log:
if there's a mirror of the requirements stuff outside hudson, use that instead; else
work in local workspace; also, add new 'all' target to fetch everything in one
operation (for offline mirroring)
Modified: trunk/requirements/build.xml
===================================================================
--- trunk/requirements/build.xml 2011-04-21 15:34:44 UTC (rev 30705)
+++ trunk/requirements/build.xml 2011-04-21 16:16:39 UTC (rev 30706)
@@ -3,14 +3,65 @@
<import file="buildRequirements.xml" />
<property name="requirement.root" value="${basedir}" />
- <property name="requirement.download.root"
value="${basedir}/download" />
- <property name="requirement.build.root" value="${basedir}/target"
/>
-
+ <property name="requirement.download.root"
value="${requirement.root}/download" />
+ <property name="requirement.build.root"
value="${requirement.root}/target" />
<condition property="skipRequirementBuild">
- <equals arg1="${maven.test.skip}" arg2="true"/>
+ <equals arg1="${maven.test.skip}" arg2="true" />
</condition>
-
- <target name="default" description="description"
unless="skipRequirementBuild">
+
+ <target name="all" description="fetch all requirements defined by
subdirs with a build.properties file">
+ <if>
+ <not>
+ <isset property="requirements" />
+ </not>
+ <then>
+ <var name="requirements" value="" />
+ </then>
+ </if>
+ <!-- get all subdirs, and check each one for a build.properties file -->
+ <for param="subdir">
+ <path>
+ <dirset dir="${basedir}" excludes="bin, download, generic, lib,
target" />
+ </path>
+ <sequential>
+ <if>
+ <available file="(a){subdir}/build.properties" />
+ <then>
+ <basename file="@{subdir}" property="subdir" />
+ <var name="requirements" value="${requirements},${subdir}"
/>
+ <var name="subdir" unset="true" />
+ </then>
+ </if>
+ </sequential>
+ </for>
+ <!-- remove prefix comma -->
+ <propertyregex defaultvalue="${requirements}"
input="${requirements}" replace="\1" regexp=",(.+)"
override="true" property="requirements" />
+
+ <echo>requirements=${requirements}</echo>
+ <echo>unzipto=${requirement.build.root}</echo>
+ <buildRequirements requirements="${requirements}"
unzipto="${requirement.build.root}" />
+ </target>
+
+ <!-- if there's a mirror of the requirements stuff outside hudson, use that
instead; else work in local workspace -->
+ <target name="default" description="to fetch 1 or more requirement(s),
set -Drequirements=one,two,three" unless="skipRequirementBuild">
+ <!--
https://jira.jboss.org/jira/browse/JBQA-3313 Use static, shared space outside
workspace, instead of working directly in the workspace -->
+ <if>
+ <available file="/home/hudson/static_build_env/jbds" type="dir"
/>
+ <then>
+ <var name="requirement.root" unset="true" />
+ <property name="requirement.root"
value="/home/hudson/static_build_env/jbds/requirements"/>
+ <mkdir dir="${requirement.root}" />
+
+ <var name="requirement.build.root" unset="true" />
+ <property name="requirement.build.root"
value="${requirement.root}/target" />
+ <mkdir dir="${requirement.build.root}" />
+
+ <var name="requirement.download.root" unset="true" />
+ <property name="requirement.download.root"
value="${requirement.root}/download" />
+ <mkdir dir="${requirement.download.root}" />
+ </then>
+ </if>
+
<echo>maven.test.skip=${maven.test.skip}</echo>
<echo>settings.offline=${settings.offline}</echo>
<echo>requirements=${requirements}</echo>