Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
checkout.xml 4.49 KiB
<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.
    -->
    <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="false"/>
        <!--
            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}"/>
        <cvs
            quiet="true"
            cvsRoot="${mapCvsRoot}"
            package="${env.RELENG}"
            dest="${codir}"
            tag="${mapVersionTag}"/>
    </target>
</project>