buildframework/helium/tools/release/release.ant.xml
changeset 645 b8d81fa19e7d
parent 628 7c4a911dc066
equal deleted inserted replaced
643:27cf35f95864 645:b8d81fa19e7d
    30     
    30     
    31     <!-- This is where the release build logs are stored.
    31     <!-- This is where the release build logs are stored.
    32     @type string
    32     @type string
    33     @scope private
    33     @scope private
    34     -->
    34     -->
    35     <property name="release.log.dir" location="${build.log.dir}/release"/>       
    35     <property name="release.log.dir" location="${build.log.dir}/release"/>
    36     
       
    37     
       
    38     <!--* @property release.grace.service
       
    39     The Grace service used
       
    40     @type string
       
    41     @editable required
       
    42     @scope public
       
    43     -->
       
    44 
       
    45     <!--* @property release.grace.product
       
    46     The Grace product used
       
    47     @type string
       
    48     @editable required
       
    49     @scope public
       
    50     -->
       
    51 
       
    52     <!--* @property release.grace.mail.to
       
    53     To whom the completion mail is sent to
       
    54     @type string
       
    55     @editable required
       
    56     @scope public
       
    57     -->
       
    58 
       
    59     <!--* @property release.grace.mail.subject
       
    60     The subject of the Grace upload completion mail
       
    61     @type string
       
    62     @editable required
       
    63     @scope public
       
    64     -->
       
    65 
       
    66     <!--* @property release.grace.mail.message
       
    67     The message contents of the Grace upload completion mail
       
    68     @type string
       
    69     @editable required
       
    70     @scope public
       
    71     -->
       
    72     
    36     
    73     <!--* @property robot.release.enabled
    37     <!--* @property robot.release.enabled
    74     Set to true to do build robot release after completing the build and if it successful.
    38     Set to true to do build robot release after completing the build and if it successful.
    75     @type boolean
    39     @type boolean
    76     @editable required
    40     @editable required
    92     @scope private
    56     @scope private
    93     -->
    57     -->
    94     
    58     
    95     <!-- Check, is robot release is enabled -->
    59     <!-- Check, is robot release is enabled -->
    96     <condition property="internal.robot.release.enabled">
    60     <condition property="internal.robot.release.enabled">
    97         <and>
    61         <or>
    98             <or>
    62             <istrue value="${robot.release.enabled}"/>
    99                 <istrue value="${robot.release.enabled}"/>
    63             <isset property="do.robot.release"/>
   100                 <isset property="do.robot.release"/>
    64         </or> 
   101             </or>
       
   102             <isset property="s60.build.robot.path"/>
       
   103         </and>    
       
   104     </condition>
    65     </condition>
   105 
    66 
   106     <fileset id="release.files" dir="${publish.dir}">
    67     <fileset id="release.files" dir="${publish.dir}">
   107         <include name="logs/**/*" />
    68         <include name="logs/**/*" />
   108         <include name="development_flash_images/**/*" />
    69         <include name="development_flash_images/**/*" />
   150 import ido
   111 import ido
   151 projects = []
   112 projects = []
   152 mconfigstr = project.getProperty('s60.build.robot.date')
   113 mconfigstr = project.getProperty('s60.build.robot.date')
   153 if mconfigstr != None:
   114 if mconfigstr != None:
   154     for configstr in mconfigstr.split(';'):
   115     for configstr in mconfigstr.split(';'):
   155         config = map(lambda x: x.strip(), configstr.split(','))
   116         config = [x.strip() for x in configstr.split(',')]
   156         try:
   117         if len(config) < 4:
   157             if ido.is_in_interval(int(config[0]), config[1], int(config[2]), config[3]):
   118             raise Exception(configstr + ' is invalid config')
   158                 self.log("It is release time!")
   119         if ido.is_in_interval(int(config[0]), config[1], int(config[2]), config[3]):
   159                 projects.append(config[4])
   120             self.log("It is release time!")
   160                 project.setProperty('robot.release.project', ",".join(projects))
   121             projects.append(config[4])
   161             else:
   122             project.setProperty('robot.release.project', ",".join(projects))
   162                 self.log("It is not release time!")
   123         else:
   163         except Exception, e:
   124             self.log("It is not release time!")
   164             self.log("'%s' invalid configuration." % configstr)
       
   165 else:
   125 else:
   166     self.log("'s60.build.robot.date' is not defined.")
   126     self.log("'s60.build.robot.date' is not defined.")
   167 ]]>
   127 ]]>
   168         </script>
   128         </script>
   169     </target>
   129     </target>
   171     <!-- Sources are sent to the S60 build robot by all the IDOs. 
   131     <!-- Sources are sent to the S60 build robot by all the IDOs. 
   172     This target collects all the sources based on the System Definition file, 
   132     This target collects all the sources based on the System Definition file, 
   173     zip them all and send to the specified location. There is only one but mandatory 
   133     zip them all and send to the specified location. There is only one but mandatory 
   174     property to tell the location of the build server which is "s60.build.robot.path".
   134     property to tell the location of the build server which is "s60.build.robot.path".
   175     -->
   135     -->
   176     <target name="ido-sources-to-s60-build-robot" if="internal.robot.release.enabled" depends="ido-create-ado-mapping,check-robot-release,lookup-email">
   136     <target name="ido-sources-to-s60-build-robot" if="internal.robot.release.enabled" depends="check-robot-release,lookup-email">
   177         <if>
   137         <if>
   178             <isset property="robot.release.project"/>
   138             <isset property="robot.release.project"/>
   179             <then>
   139             <then>
       
   140                 <property name="robot.mapping.file" location="${build.output.dir}/build/ado_mapping_robot.ini" />
       
   141                 <hlm:createAdoMappingMacro adoMapFile="${robot.mapping.file}" />
   180                 <!-- Location of the ready.txt FMPP template (override that property if you want to customize the content).
   142                 <!-- Location of the ready.txt FMPP template (override that property if you want to customize the content).
   181                 @type string
   143                 @type string
   182                 @scope private
   144                 @scope private
   183                 -->
   145                 -->
   184                 <property name="ido.template.robot.ready" location="${helium.dir}/tools/common/templates/ido/ready.txt.ftl" />
   146                 <property name="ido.template.robot.ready" location="${helium.dir}/tools/release/templates/ready.txt.ftl" />
   185                 <tempfile property="s60robot.dynamic.config" suffix=".xml" deleteonexit="false" destdir="${temp.build.dir}" />
   147                 <tempfile property="s60robot.dynamic.config" suffix=".xml" deleteonexit="false" destdir="${temp.build.dir}" />
   186                 <fmpp sourceFile="${helium.dir}/tools/common/templates/ido/ido-robot-zip.ant.xml.ftl" outputFile="${s60robot.dynamic.config}">
   148                 <fmpp sourceFile="${helium.dir}/tools/release/templates/ido-robot-zip.ant.xml.ftl" outputFile="${s60robot.dynamic.config}">
   187                     <data expandProperties="yes">
   149                     <data expandProperties="yes">
   188                             inputfile: antProperty(ado.mapping.file)
   150                             inputfile: antProperty(robot.mapping.file)
   189                             ant: antProperties()
   151                             ant: antProperties()
   190                             data: eval('
   152                             data: eval('
   191                                 java.io.FileInputStream pin = new java.io.FileInputStream(filename);
   153                                 java.io.FileInputStream pin = new java.io.FileInputStream(filename);
   192                                 java.util.Properties props = new java.util.Properties();
   154                                 java.util.Properties props = new java.util.Properties();
   193                                 props.load(pin);
   155                                 props.load(pin);