| <project |
| name="checkout" |
| default="checkout" |
| basedir="."> |
| <!-- |
| Standard properties pattern. Note: to be cross-platform, |
| "environment variables" are only appropriate for some variables, |
| e.g. ones we set, since properties are case sensitive, even if |
| the environment variables on your operating system are not, e.g. |
| it will be ${env.Path} not ${env.PATH} on Windows |
| --> |
| <property |
| environment="env"/> |
| <!-- |
| Let users override standard properties, if desired. If |
| directory, file, or some properties do not exist, then standard |
| properties will be used. |
| --> |
| <echo message="LOCAL_BUILD_PROPERTIES_DIR: ${env.LOCAL_BUILD_PROPERTIES_DIR}"/> |
| |
| |
| <property |
| file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties"/> |
| |
| <fail |
| unless="projectname" |
| message="a projectname is required"/> |
| |
| <!-- if not otherwise set, the following are good default values --> |
| <property |
| name="checkout.builder.clean" |
| value="true"/> |
| <property |
| name="mapVersionTag" |
| value="HEAD"/> |
| <property |
| name="cvsProtocol" |
| value="${env.BUILD_CVS_WRITE_PROTOCOL}"/> |
| <property |
| name="cvsUser" |
| value="${env.BUILD_CVS_WRITE_USER}"/> |
| <property |
| name="cvsServer" |
| value="${env.BUILD_CVS_SERVER}"/> |
| <property |
| name="cvsRoot" |
| value="${env.BUILD_CVS_ROOT}"/> |
| |
| <!-- end required defaults-if-not-set --> |
| |
| |
| <!-- standard computed properties. Should not have to be changed. --> |
| <property |
| name="mapCvsRoot" |
| value=":${cvsProtocol}:${cvsUser}@${cvsServer}:${cvsRoot}"/> |
| <property |
| name="codir" |
| value="${env.PROJECT_BUILDERS}/${projectname}"/> |
| <echo |
| message="projectname: ${projectname}"/> |
| |
| <!-- main --> |
| <target |
| name="checkout" |
| if="projectname"> |
| <!-- we always check and init the builder --> |
| |
| <antcall |
| target="getbuilder"/> |
| |
| </target> |
| <!-- |
| The order of execution of these three worker targets is |
| critical, check.clean, initBuilders, and then getbuilder. |
| --> |
| <target |
| name="getbuilder" |
| depends="check.clean,initBuilders" |
| if="doClean"> |
| <!-- |
| This is a special property file, that contains (only) the |
| value of builderVersion. Then, that version of the builder |
| is fetched to control the rest of the build |
| --> |
| <property |
| file="${codir}/${env.RELENG}/maps/build.cfg"/> |
| <fail |
| unless="builderVersion" |
| message="Could not get builderVersion. Probably could not checkout build.cfg"/> |
| <!-- |
| deleting WTP builder project location: <BUILD |
| HOME>/projectBuilders/<project>/webtools.releng/releng.wtpbuilder |
| --> |
| <delete |
| dir="${codir}/${env.RELENG_BUILDER}" |
| failonerror="true"/> |
| <!-- |
| Get a new version of the wtpbuild project from CVS, version |
| comes from build.cfg map file |
| --> |
| <echo |
| message="Version tag for ${env.RELENG_BUILDER} is: ${builderVersion}"/> |
| <cvs |
| quiet="${env.CVS_QUIET}" |
| reallyquiet="${env.CVS_REALLY_QUIET}" |
| cvsRoot="${mapCvsRoot}" |
| package="${env.RELENG_BUILDER}" |
| dest="${codir}" |
| tag="${builderVersion}"/> |
| </target> |
| <!-- |
| set doClean property checkout.build.clean is set in |
| checkout.properties from the project properties directory |
| --> |
| <target |
| name="check.clean"> |
| <echo |
| message="checkout.builder.clean: ${checkout.builder.clean}"/> |
| <condition |
| property="doClean"> |
| <equals |
| arg1="${checkout.builder.clean}" |
| arg2="true" |
| trim="true" |
| casesensitive="false"/> |
| </condition> |
| </target> |
| <!-- |
| checkout releng from from CVS. We do this only to get the |
| build.cfg file which names the version of the wtpbuilder to get. |
| CVS src: webtools.map/releng/maps files dest: <BUILD |
| HOME>/projectBuilders/<project>/webtools.maps/releng/maps |
| --> |
| <target |
| name="initBuilders" |
| depends="check.clean" |
| if="doClean"> |
| <echo |
| message="Version tag for ${env.RELENG}: ${mapVersionTag}"/> |
| |
| <delete |
| dir="${codir}/${env.RELENG}" |
| failonerror="true"/> |
| <cvs |
| quiet="true" |
| cvsRoot="${mapCvsRoot}" |
| package="${env.RELENG}" |
| dest="${codir}" |
| tag="${mapVersionTag}"/> |
| </target> |
| </project> |