buildframework/helium/builder/delivery.ant.xml
changeset 587 85df38eb4012
child 588 c7c26511138f
equal deleted inserted replaced
217:0f5e3a7fb6af 587:85df38eb4012
       
     1 <?xml version="1.0" encoding="UTF-8"?>
       
     2 <!-- 
       
     3 ============================================================================ 
       
     4 Name        : build.xml 
       
     5 Part of     : Helium AntLib
       
     6 
       
     7 Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     8 All rights reserved.
       
     9 This component and the accompanying materials are made available
       
    10 under the terms of the License "Eclipse Public License v1.0"
       
    11 which accompanies this distribution, and is available
       
    12 at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
    13 
       
    14 Initial Contributors:
       
    15 Nokia Corporation - initial contribution.
       
    16 
       
    17 Contributors:
       
    18 
       
    19 Description:
       
    20 
       
    21 ============================================================================
       
    22 -->
       
    23 <project name="delivery" default="build" xmlns:au="antlib:org.apache.ant.antunit" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:ac="antlib:net.sf.antcontrib">
       
    24 
       
    25     <property name="delivery.type" value="nokia" />
       
    26     <target name="publish-releasable" if="publish.ci.dir" description="Publish the releasble package on a shared drived (must be built from a Mercurial clone)">
       
    27         <ac:runtarget target="get-helium-revision" />
       
    28         <mkdir dir="${publish.ci.dir}/${delivery.type}/${helium.revision}/" />
       
    29         <copy file="${binary.delivery.zip}" todir="${publish.ci.dir}/${delivery.type}/${helium.revision}/" />
       
    30         <echo file="${publish.ci.dir}/${delivery.type}/${helium.revision}/tickler.txt" message="done" />
       
    31     </target>
       
    32   
       
    33     <target name="cleanup-publish-dir" if="publish.ci.dir">
       
    34         <tstamp>
       
    35             <format property="before.date" pattern="MM/dd/yyyy hh:mm aa" offset="-1" unit="day"/>
       
    36         </tstamp>
       
    37         <echo>Deleting files before: ${before.date}</echo>
       
    38         <delete>
       
    39             <fileset dir="${publish.ci.dir}">
       
    40                 <date datetime="${before.date}" when="before" />
       
    41             </fileset>
       
    42         </delete>
       
    43     </target>
       
    44     
       
    45     <target name="create-sf-source-delivery" description="Create the SF source delivery">
       
    46         <mkdir dir="${build.temp.dir}" />
       
    47         <delete file="${sf.delivery.zip}" failonerror="false" />
       
    48         <zip destfile="${sf.delivery.zip}">
       
    49             <zipfileset dir="${source.root.dir}" prefix="helium">
       
    50                 <include name="**/*" />
       
    51                 <exclude name="build/**" />
       
    52                 <exclude name="**/distribution.policy.S60" />
       
    53                 <exclude name="builder/antlibs/cachedir/**" />
       
    54                 <exclude name="external/antlibs/**" />
       
    55                 <exclude name="external/antlibs2/**" />
       
    56                 <exclude name="external/python/configure_jython.*" />
       
    57                 <exclude name="external/python/lib/auto/**" />
       
    58                 <scriptselector language="jython">
       
    59 try:
       
    60     if file.isDirectory():
       
    61         value = open(file.toString() + "/distribution.policy.S60").read().strip().strip('\n')
       
    62     else:
       
    63         value = open(file.getParent() + "/distribution.policy.S60").read().strip().strip('\n')
       
    64     if value == '7':
       
    65         #self.log("Selecting %s" % file)
       
    66         self.setSelected(True)
       
    67     else:
       
    68         self.setSelected(False)
       
    69 except:
       
    70     print "distribution.policy.S60 is missing for %s" % file
       
    71     self.setSelected(False)
       
    72                 </scriptselector>
       
    73             </zipfileset>
       
    74         </zip>
       
    75     </target>
       
    76 
       
    77     <target name="create-sf-delivery" depends="create-sf-source-delivery">
       
    78         <delete dir="${build.temp.dir}/sf_helium" failonerror="false" />
       
    79         <mkdir dir="${build.temp.dir}/sf_helium" />
       
    80         <unzip src="${sf.delivery.zip}" dest="${build.temp.dir}/sf_helium" />
       
    81         <exec osfamily="windows" executable="cmd" dir="${build.temp.dir}/sf_helium/helium/builder">
       
    82             <arg value="/C" />
       
    83             <arg value="bld.bat" />
       
    84             <arg value="build" />
       
    85         </exec>
       
    86         <exec osfamily="windows" executable="cmd" dir="${build.temp.dir}/sf_helium/helium/builder">
       
    87             <arg value="/C" />
       
    88             <arg value="bld.bat" />
       
    89             <arg value="-Dconfig=sf" />
       
    90             <arg value="create-releasable" />
       
    91         </exec>
       
    92     </target>
       
    93 
       
    94     <target name="get-latest-delivery">
       
    95         <mkdir dir="${build.temp.dir}/temp" />
       
    96         <basename file="${binary.delivery.zip}" property="binary.delivery.basename" />
       
    97         <copy todir="${build.temp.dir}/temp" verbose="true">
       
    98             <fileset dir="${publish.ci.dir}/${delivery.type}">
       
    99                 <include name="*/${binary.delivery.basename}" />
       
   100                 <scriptselector language="jython">
       
   101 <![CDATA[
       
   102 try:
       
   103     open(file.getParent() + "/tickler.txt").close()
       
   104     myrev = int(file.getParentFile().getName())
       
   105     selected = True
       
   106     for f in file.getParentFile().getParentFile().listFiles():
       
   107         try:
       
   108             if myrev < int(f.getName()):
       
   109                 selected = False
       
   110         except:
       
   111             pass
       
   112     self.setSelected(selected)
       
   113 except:
       
   114     print "No ticker file for %s" % file
       
   115     self.setSelected(False)
       
   116 ]]>
       
   117                 </scriptselector>
       
   118             </fileset>
       
   119             <flattenmapper/>
       
   120         </copy>
       
   121         <unzip src="${build.temp.dir}/temp/${binary.delivery.basename}" dest="${build.temp.dir}/temp" />
       
   122     </target>
       
   123 </project>