buildframework/helium/tools/preparation/preparation.ant.xml
changeset 628 7c4a911dc066
parent 588 c7c26511138f
child 645 b8d81fa19e7d
equal deleted inserted replaced
588:c7c26511138f 628:7c4a911dc066
    34     <!-- includes all necessary stuff -->
    34     <!-- includes all necessary stuff -->
    35     <!-- To check which ccmgetinput helium will be use
    35     <!-- To check which ccmgetinput helium will be use
    36     @type string
    36     @type string
    37     -->
    37     -->
    38     <property name="ccmgetinput" value="ccmgetinput" />
    38     <property name="ccmgetinput" value="ccmgetinput" />
       
    39     
       
    40     <!--* Set to false to skip diamonds.
       
    41     @type boolean
       
    42     @editable required
       
    43     @scope public
       
    44     @since 11.0
       
    45     -->
       
    46     <property name="diamonds.enabled" value="true"/>
       
    47 
       
    48     
       
    49     <!--* @property internal.diamonds.enabled
       
    50     Run the diamonds related targets if diamonds.enabled is set to true.
       
    51     @type boolean
       
    52     @scope private
       
    53     -->
       
    54     
       
    55     <!--* @property skip.diamonds 
       
    56     Set to true to skip diamonds. - deprecated: Start using diamonds.enabled property.
       
    57     @type boolean
       
    58     @editable required
       
    59     @scope public
       
    60     @deprecated since 11.0
       
    61     -->       
       
    62     
       
    63     <!--* @property ccm.enabled
       
    64     Defines that property if you want the ccm-get-input step to be run during the build area preparation.
       
    65     @type boolean
       
    66     @editable required
       
    67     @scope public
       
    68     -->
       
    69         
       
    70     <!--* @property internal.ccm.enabled
       
    71     Set to run synergy targets if ccm.enabled set to true.
       
    72     @type boolean
       
    73     @scope private
       
    74     -->
       
    75     
       
    76     <!--* @property remote.builds.enabled
       
    77     Set to true to run the builds on remote machines.
       
    78     @type boolean
       
    79     @scope public
       
    80     @editable required
       
    81     @since 11.0
       
    82     -->
       
    83     
       
    84     <!--* @property internal.remote.builds.enabled
       
    85     Set to run remote build targets if remote.builds.enabled set to true.
       
    86     @type boolean
       
    87     @scope private
       
    88     -->
       
    89     
       
    90     <!-- Check, is diamonds feature enabled -->
       
    91     <condition property="internal.diamonds.enabled">
       
    92         <and>
       
    93             <not>
       
    94                 <isfalse value="${diamonds.enabled}" />
       
    95             </not>
       
    96             <not>
       
    97                 <isset property="skip.diamonds"/>
       
    98             </not>
       
    99         </and>
       
   100     </condition>
       
   101     
       
   102     <!-- Check, is synergy enabled -->
       
   103     <condition property="internal.ccm.enabled">
       
   104         <istrue value="${ccm.enabled}"/>
       
   105     </condition>
       
   106     
       
   107     <!-- Check, is synergy enabled -->
       
   108     <condition property="internal.remote.builds.enabled">
       
   109         <istrue value="${remote.builds.enabled}"/>
       
   110     </condition>
       
   111     
    39 
   112 
    40     <typedef file="${ant.file.preparation}/../preparation.antlib.xml" uri="http://www.nokia.com/helium"/>
   113     <typedef file="${ant.file.preparation}/../preparation.antlib.xml" uri="http://www.nokia.com/helium"/>
    41     <import file="bom/bom.ant.xml" />
   114     <import file="bom/bom.ant.xml" />
    42     <import file="password.ant.xml" />
   115     <import file="password.ant.xml" />
    43     <import file="ido-prep.ant.xml" />
   116     <import file="ido-prep.ant.xml" />
    44     <import file="synergy/ccmgetinput.ant.xml" />
   117     <import file="synergy/ccmgetinput.ant.xml" />
    45     <import file="synergy/buildmanagement.ant.xml" />
   118     <import file="synergy/buildmanagement.ant.xml" />
    46     <import file="ivy/dependencies.ant.xml"/>
   119     <import file="ivy/dependencies.ant.xml"/>
    47 
   120 
    48 
   121 
    49     <!--
   122     <!-- Gets a release from network drive. -->
    50         Gets a release from GRACE.
       
    51         TODO: Improve interface with customer configuration, getenv_options should be replaced by set of properties.
       
    52     -->
       
    53     <target name="preparation-getenv" if="base_release.path" depends="init-build-area">
   123     <target name="preparation-getenv" if="base_release.path" depends="init-build-area">
    54         <!-- Making sure we have nothing to pass -->
   124         <!-- Making sure we have nothing to pass -->
    55         <property name="base_release.path" value=""/>
   125         <property name="base_release.path" value=""/>
    56         <property name="base_release.getenv_options" value=""/>
   126         <property name="base_release.getenv_options" value=""/>
    57         <!-- Using the cleaned version of getenv.pl -->
   127         <!-- Using the cleaned version of getenv.pl -->
   308         <propertyref name="release.notes.password" />
   378         <propertyref name="release.notes.password" />
   309         <propertyref name="nwiki.password" />
   379         <propertyref name="nwiki.password" />
   310         <propertyref name="noe.password" />
   380         <propertyref name="noe.password" />
   311         <propertyref name="ats.password" />
   381         <propertyref name="ats.password" />
   312         <propertyref name="hydra.password" />
   382         <propertyref name="hydra.password" />
       
   383         <propertyref name="coverity.password" />
   313     </propertyset>
   384     </propertyset>
   314     
   385     
   315     <!-- Logs the Ant property build environment. -->
   386     <!-- Logs the Ant property build environment. -->
   316     <target name="log-build-env">
   387     <target name="log-build-env">
   317         <echoproperties destfile="${build.log.dir}/${build.id}_ant_env.log">
   388         <echoproperties destfile="${build.log.dir}/${build.id}_ant_env.log">
   350         <if>
   421         <if>
   351             <and>
   422             <and>
   352                 <not>
   423                 <not>
   353                     <isset property="env.HLM_SUBCON"/>
   424                     <isset property="env.HLM_SUBCON"/>
   354                 </not>
   425                 </not>
   355                 <isset property="use.dragonfly"/>
   426                 <or>
       
   427                     <istrue value="${dragonfly.enabled}"/>
       
   428                     <isset property="use.dragonfly"/>
       
   429                 </or>
   356             </and>
   430             </and>
   357             <then>
   431             <then>
   358                 <antcall target="dragonfly-prep-drive"/>
   432                 <antcall target="dragonfly-prep-drive"/>
   359             </then>
   433             </then>
   360             <else> 
   434             <else> 
   438                 <include name="*.xml"/>
   512                 <include name="*.xml"/>
   439             </fileset>
   513             </fileset>
   440         </copy>
   514         </copy>
   441         
   515         
   442     </target>
   516     </target>
   443     
   517 
       
   518     <!-- Loading some properties from the cache. Mainly diamonds related properties are
       
   519          stored in there. 
       
   520      -->
       
   521     <target name="load-property-from-cache-file">
       
   522         <if>
       
   523             <available file="${build.property.cache.file}" />
       
   524             <then>
       
   525                 <property file="${build.property.cache.file}" />
       
   526             </then>
       
   527         </if>
       
   528     </target>
       
   529 
   444     <!-- This target exists as a trigger for initiating the Diamonds logger. If 
   530     <!-- This target exists as a trigger for initiating the Diamonds logger. If 
   445           it is not included in the build sequence, the build will not be logged to 
   531           it is not included in the build sequence, the build will not be logged to 
   446           Diamonds. Also  build.property.cache.file will be there contains all the diamonds related properties 
   532           Diamonds. Also  build.property.cache.file will be there contains all the diamonds related properties 
   447     --> 
   533     --> 
   448     <target name="diamonds">
   534     <target name="diamonds" if="internal.diamonds.enabled" depends="load-property-from-cache-file">
   449         <!--* @property skip.diamonds
       
   450         Set to true to skip diamonds.
       
   451         @type boolean
       
   452         @editable required
       
   453         @scope public
       
   454         -->
       
   455         <mkdir dir="${diamonds.build.output.dir}" />
   535         <mkdir dir="${diamonds.build.output.dir}" />
   456         <var name="diamonds.build.url"  value="http://${diamonds.host}:${diamonds.port}${diamonds.build.id}"/>
   536         <var name="diamonds.build.url"  value="http://${diamonds.host}:${diamonds.port}${diamonds.build.id}"/>
   457         <echoproperties destfile="${build.property.cache.file}">
   537         <echoproperties destfile="${build.property.cache.file}">
   458             <propertyset>
   538             <propertyset>
   459                 <propertyref prefix="diamonds.build.url"/>
   539                 <propertyref prefix="diamonds.build.url"/>
   465     </target>    
   545     </target>    
   466    
   546    
   467     <!-- Used to prep the build area, now only a placeholder target for the customer -->
   547     <!-- Used to prep the build area, now only a placeholder target for the customer -->
   468     <target name="prep-copy" />
   548     <target name="prep-copy" />
   469 
   549 
   470     <!--* @property ccm.enabled
       
   471     Defines that property if you want the ccm-get-input step to be run during the build area preparation.
       
   472     @type boolean
       
   473     @editable required
       
   474     @scope public
       
   475     -->
       
   476     
       
   477     <condition property="run.ccm">
       
   478         <and>
       
   479             <not>
       
   480                 <equals arg1="${ccm.enabled}" arg2="false" casesensitive="true"/>
       
   481             </not>
       
   482             <isset property="ccm.enabled"/>
       
   483         </and>
       
   484     </condition>
       
   485     
       
   486     <!-- Wrapper target to call prep-work-area during the build.
   550     <!-- Wrapper target to call prep-work-area during the build.
   487          log will get recorded under the log directory.
   551          log will get recorded under the log directory.
   488          Property ccm.enabled has to be set to 'true' to enable that step!
   552          Property ccm.enabled has to be set to 'true' to enable that step!
   489          prep-work-area-check-errors is also run so it emits a signal in case of errors.
   553          prep-work-area-check-errors is also run so it emits a signal in case of errors.
   490       -->
   554       -->
   496     
   560     
   497     <!-- Wrapper target to call start-remote-builds during the build.
   561     <!-- Wrapper target to call start-remote-builds during the build.
   498          log will get recorded under the log directory.
   562          log will get recorded under the log directory.
   499          Property remote.builds.enabled has to be defined to enable that step!
   563          Property remote.builds.enabled has to be defined to enable that step!
   500       -->
   564       -->
   501     <target name="do-start-remote-builds" if="remote.builds.enabled">
   565     <target name="do-start-remote-builds" if="internal.remote.builds.enabled">
   502         <runtarget target="start-remote-builds"/>
   566         <runtarget target="start-remote-builds"/>
   503     </target>
   567     </target>
   504     
   568     
   505     
   569     
   506     <!-- check-env-prep has to be called after getting the delivery else it doesn't works for the first build. -->
   570     <!-- check-env-prep has to be called after getting the delivery else it doesn't works for the first build. -->
   507     <target name="do-prep" depends="check-tool-dependencies,check-free-space,do-prep-work-area,
   571     <target name="do-prep" depends="check-free-space,do-prep-work-area,
   508                                     do-start-remote-builds,check-env-prep,diamonds,create-bom,log-build-env,prep-copy,
   572                                     do-start-remote-builds,check-env-prep,diamonds,create-bom,log-build-env,prep-copy,
   509                                     set-arm-version" />
   573                                     set-arm-version" />
       
   574     
   510     
   575     
   511     <!-- Macro to notify user by email/sms -->
   576     <!-- Macro to notify user by email/sms -->
   512     <macrodef name="notifyMacro" uri="http://www.nokia.com/helium">
   577     <macrodef name="notifyMacro" uri="http://www.nokia.com/helium">
   513         <attribute name="message"/>
   578         <attribute name="message"/>
   514         <sequential>
   579         <sequential>
   536             <hlm:antmetadatainput>
   601             <hlm:antmetadatainput>
   537                 <fileset casesensitive="false" file="${build.log.dir}/${build.id}_main.ant.log" />
   602                 <fileset casesensitive="false" file="${build.log.dir}/${build.id}_main.ant.log" />
   538                 <metadatafilterset refid="filterset.ant.output" />
   603                 <metadatafilterset refid="filterset.ant.output" />
   539             </hlm:antmetadatainput>
   604             </hlm:antmetadatainput>
   540         </hlm:metadatarecord>
   605         </hlm:metadatarecord>
   541         <hlm:generateBuildStatus file="${build.id}_main.ant.log" />
   606         <hlm:generateBuildStatus file="${build.log.dir}/${build.id}_main.ant.log" />
   542         <!-- Todo: metadata: insert assertions for metadata parsing here -->
   607         <!-- Todo: metadata: insert assertions for metadata parsing here -->
   543     </target>
   608     </target>
   544     
   609     
   545     <!-- Set properties for track full build event. -->
   610     <!-- Set properties for track full build event. -->
   546     <target name="set-fullbuild-properties">
   611     <target name="set-fullbuild-properties">