buildframework/helium/tools/quality/validate-policy.ant.xml
changeset 628 7c4a911dc066
parent 588 c7c26511138f
child 645 b8d81fa19e7d
equal deleted inserted replaced
588:c7c26511138f 628:7c4a911dc066
    38     <property name="validate.policy.log.xml" location="${temp.build.dir}/${build.id}_validate-policy.log.xml" />
    38     <property name="validate.policy.log.xml" location="${temp.build.dir}/${build.id}_validate-policy.log.xml" />
    39     <!-- Location of the CSV file that defines policy IDs.
    39     <!-- Location of the CSV file that defines policy IDs.
    40     @type string
    40     @type string
    41     -->
    41     -->
    42     <property name="validate.policy.csv" location="${helium.dir}/tests/minibuilds/compile/distribution.policy.extended_for_sf.id_status.csv" />
    42     <property name="validate.policy.csv" location="${helium.dir}/tests/minibuilds/compile/distribution.policy.extended_for_sf.id_status.csv" />
    43     <!-- Skip the validation of the given root folders.
    43     
    44     @type boolean
    44     <!--* @property validate.policy.ignoreroot.enabled
    45     -->
    45     Skip the validation of the given root folders if set to true.
    46     <property name="validate.policy.ignoreroot" value="false" />
    46     @type boolean
       
    47     @scope public
       
    48     @since 11.0
       
    49     -->
       
    50     
       
    51     <!--* @property validate.policy.ignoreroot
       
    52     Skip the validation of the given root folders if set to true. - deprecated: Start using validate.policy.ignoreroot.enabled.
       
    53     @type boolean
       
    54     @scope public
       
    55     @deprecated since 11.0
       
    56     -->
       
    57     
       
    58     <!-- * @property internal.validate.policy.ignoreroot.enabled
       
    59     If the property is set to "true", if validate.policy.ignoreroot.enabled set to true.
       
    60     @type boolean
       
    61     @scope private
       
    62     -->
       
    63     <condition property="internal.validate.policy.ignoreroot.enabled" value="true" else="false">
       
    64         <or>
       
    65             <istrue value="${validate.policy.ignoreroot.enabled}"/>
       
    66             <istrue value="${validate.policy.ignoreroot}"/>
       
    67         </or>
       
    68     </condition>
       
    69     
       
    70     
       
    71     
    47     <!-- Comma separated list of pattern for policy validation.
    72     <!-- Comma separated list of pattern for policy validation.
    48     Default value is, distribution.policy.s60,distribution.policy,distribution.policy.pp
    73     Default value is, distribution.policy.s60,distribution.policy,distribution.policy.pp
    49     @type string
    74     @type string
    50     -->
    75     -->
    51     <property name="validate.policy.pattern" value="distribution.policy.s60,distribution.policy,distribution.policy.pp" />
    76     <property name="validate.policy.pattern" value="distribution.policy.s60,distribution.policy,distribution.policy.pp" />
    52     <!-- Comma separated list of filename to exclude while scanning for missing policy files.
    77     <!-- Comma separated list of filename to exclude while scanning for missing policy files.
    53     Default value is .static_wa,_ccmwaid.inf
    78     Default value is .static_wa,_ccmwaid.inf
    54     @type string
    79     @type string
    55     -->
    80     -->
    56     <property name="validate.policy.exclude.pattern" value=".static_wa,_ccmwaid.inf" />
    81     <property name="validate.policy.exclude.pattern" value=".static_wa,_ccmwaid.inf" />
    57 
    82     
       
    83     <!--* Set to true to validate distribution.policy.S60 files values.
       
    84     @type boolean
       
    85     @editable required
       
    86     @scope public
       
    87     @since 11.0
       
    88     -->
       
    89     <property name="policy.file.validation.enabled" value="true"/>
       
    90 
       
    91     
       
    92     <!--* @property internal.policy.file.validation.enabled
       
    93     Set to run targets to validate distribution.policy.S60 files values if policy.file.validation.enabled set to true.
       
    94     @type boolean
       
    95     @scope private
       
    96     -->
       
    97     
       
    98     <!--* @property skip.policy-validation
       
    99     Set to false to disbale validate distribution.policy.S60 files values. - deprecated: Start using policy.file.validation.enabled property.
       
   100     @type boolean
       
   101     @editable required
       
   102     @scope public
       
   103     @deprecated since 11.0
       
   104     -->
       
   105     
       
   106     <!-- Check, is distribution.policy.S60 files validation is enabled.-->
       
   107     <condition property="internal.policy.file.validation.enabled">
       
   108         <and>
       
   109             <not>
       
   110                 <isfalse value="${policy.file.validation.enabled}" />
       
   111             </not>
       
   112             <not>
       
   113                 <isset property="skip.policy-validation"/>
       
   114             </not>
       
   115         </and>
       
   116     </condition>
       
   117     
       
   118     
    58     <!-- Default path settings for policy validation. -->
   119     <!-- Default path settings for policy validation. -->
    59     <path id="reference.policy.path.list">
   120     <path id="reference.policy.path.list">
    60         <pathelement path="${build.drive}/s60" />
   121         <pathelement path="${build.drive}/s60" />
    61     </path>
   122     </path>
    62 
   123 
    67     
   128     
    68     e.g.
   129     e.g.
    69     <pre>
   130     <pre>
    70       <hlm:validatePolicyMacro output="${validate.policy.log}"
   131       <hlm:validatePolicyMacro output="${validate.policy.log}"
    71           ids="${validate.policy.csv}"
   132           ids="${validate.policy.csv}"
    72           ignoreroot="${validate.policy.ignoreroot}">
   133           ignoreroot="${internal.validate.policy.ignoreroot.enabled}">
    73           <path refid="reference.policy.path.list"/>
   134           <path refid="reference.policy.path.list"/>
    74       </hlm:validatePolicyMacro>
   135       </hlm:validatePolicyMacro>
    75     </pre>
   136     </pre>
    76   -->
   137   -->
    77     <scriptdef name="validatePolicyMacro" language="jython" uri="http://www.nokia.com/helium">
   138     <scriptdef name="validatePolicyMacro" language="jython" uri="http://www.nokia.com/helium">
   140     <target name="integration-validate-policy">
   201     <target name="integration-validate-policy">
   141         <mkdir dir="${build.log.dir}"/>
   202         <mkdir dir="${build.log.dir}"/>
   142         <mkdir dir="${post.log.dir}"/>
   203         <mkdir dir="${post.log.dir}"/>
   143         <mkdir dir="${temp.build.dir}"/>
   204         <mkdir dir="${temp.build.dir}"/>
   144         <hlm:validatePolicyMacro output="${validate.policy.log}" ids="${validate.policy.csv}" 
   205         <hlm:validatePolicyMacro output="${validate.policy.log}" ids="${validate.policy.csv}" 
   145             ignoreroot="${validate.policy.ignoreroot}" pattern="${validate.policy.pattern}"
   206             ignoreroot="${internal.validate.policy.ignoreroot.enabled}" pattern="${validate.policy.pattern}"
   146             excludes="${validate.policy.exclude.pattern}">
   207             excludes="${validate.policy.exclude.pattern}">
   147             <path refid="reference.policy.path.list" />
   208             <path refid="reference.policy.path.list" />
   148         </hlm:validatePolicyMacro>
   209         </hlm:validatePolicyMacro>
   149         <hlm:metadatarecord database="${metadata.dbfile}">
   210         <hlm:metadatarecord database="${metadata.dbfile}">
   150             <hlm:policymetadatainput>
   211             <hlm:policymetadatainput>
   151                 <fileset casesensitive="false" file="${validate.policy.log}/" />
   212                 <fileset casesensitive="false" file="${validate.policy.log}/" />
   152             </hlm:policymetadatainput>
   213             </hlm:policymetadatainput>
   153         </hlm:metadatarecord>
   214         </hlm:metadatarecord>
   154         <hlm:generateBuildStatus file="${build.id}_validate-policy.summary.xml" />
   215         <hlm:generateBuildStatus file="${validate.policy.log}" />
   155     </target>
   216     </target>
   156 
   217 
   157     <!--
   218     <!--
   158     Render the policy validation xml file ('validate.policy.log') into an text output.
   219     Render the policy validation xml file ('validate.policy.log') into an text output.
   159   -->
   220   -->
   160     <target name="render-validate-policy" depends="integration-validate-policy">
   221     <target name="render-validate-policy" depends="integration-validate-policy">
   161         <if>
   222         <fmpp sourceFile="${helium.dir}/tools/common/templates/integration/validate-policy.log.ftl" outputFile="${post.log.dir}/${build.id}_validate-policy.log">
   162             <not>
   223             <freemarkerLinks expandProperties="yes">
   163                 <istrue value="${metadata.enable}" />
   224                 macro: ${helium.dir}/tools/common/templates/macro
   164             </not>
   225             </freemarkerLinks>
   165             <then>
   226             <data expandProperties="yes">
   166                 <fmpp sourceFile="${helium.dir}/tools/common/templates/integration/validate-policy.log.ftl" outputFile="${post.log.dir}/${build.id}_validate-policy.log">
   227                 doc: xml(${validate.policy.log})
   167                     <freemarkerLinks expandProperties="yes">
   228                 ant: antProperties()
   168                       macro: ${helium.dir}/tools/common/templates/macro
   229             </data>
   169                   </freemarkerLinks>
   230         </fmpp>
   170                     <data expandProperties="yes">
   231         <fmpp sourceFile="${helium.dir}/tools/common/templates/integration/validate-policy.log.xml.ftl" outputFile="${validate.policy.log.xml}">
   171                       doc: xml(${validate.policy.log})
   232             <freemarkerLinks expandProperties="yes">
   172                       ant: antProperties()
   233                 macro: ${helium.dir}/tools/common/templates/macro
   173                     </data>
   234             </freemarkerLinks>
   174                 </fmpp>
   235             <data expandProperties="yes">
   175                 <fmpp sourceFile="${helium.dir}/tools/common/templates/integration/validate-policy.log.xml.ftl" outputFile="${validate.policy.log.xml}">
   236                 doc: xml(${validate.policy.log})
   176                     <freemarkerLinks expandProperties="yes">
   237                 ant: antProperties()
   177                       macro: ${helium.dir}/tools/common/templates/macro
   238             </data>
   178                   </freemarkerLinks>
   239         </fmpp>
   179                     <data expandProperties="yes">
       
   180                       doc: xml(${validate.policy.log})
       
   181                       ant: antProperties()
       
   182                     </data>
       
   183                 </fmpp>
       
   184             </then>
       
   185             <else>
       
   186                 <!-- Todo: check and if required convert as metadata template -->
       
   187             </else>
       
   188         </if>
       
   189     </target>
   240     </target>
   190 
   241 
   191     <!-- Target that will apply regular IDO validation rules on Helium. -->
   242     <!-- Target that will apply regular IDO validation rules on Helium. -->
   192     <target name="validate-helium-policy">
   243     <target name="validate-helium-policy">
   193         <hlm:validatePolicyMacro>
   244         <hlm:validatePolicyMacro>
   195                 <pathelement path="${helium.dir}/" />
   246                 <pathelement path="${helium.dir}/" />
   196             </path>
   247             </path>
   197         </hlm:validatePolicyMacro>
   248         </hlm:validatePolicyMacro>
   198     </target>
   249     </target>
   199 
   250 
   200     <!--
       
   201       Internal target that set an intermediate property to disable policy validation execution.
       
   202     -->
       
   203     <target name="ido-validate-policy-skip">
       
   204         <condition property="do.skip.policy-validation" value="1">
       
   205             <istrue value="${skip.policy-validation}"/>
       
   206         </condition>
       
   207     </target>
       
   208     
       
   209     <!-- Policy validation target for IDO. Only detected ADO will get scanned. -->    
   251     <!-- Policy validation target for IDO. Only detected ADO will get scanned. -->    
   210     <target name="ido-validate-policy" depends="ido-create-ado-mapping,ido-validate-policy-skip" unless="do.skip.policy-validation">
   252     <target name="ido-validate-policy" depends="ido-create-ado-mapping" if="internal.policy.file.validation.enabled">
   211         <record name="${temp.build.dir}/${build.id}_validate-policy.ant.log" action="start" />
   253         <hlm:record name="${temp.build.dir}/${build.id}_validate-policy.ant.log" action="start" />
   212         <hlm:iniKeys2Path ini="${ado.quality.mapping.file}" pathid="reference.policy.path.list"/>
   254         <hlm:iniKeys2Path ini="${ado.quality.mapping.file}" pathid="reference.policy.path.list"/>
   213         <runtarget target="render-validate-policy" />
   255         <runtarget target="render-validate-policy" />
   214         <record name="${temp.build.dir}/${build.id}_validate-policy.ant.log" action="stop" />
   256         <hlm:record name="${temp.build.dir}/${build.id}_validate-policy.ant.log" action="stop" />
   215     </target>
   257     </target>
   216 
   258 
   217 </project>
   259 </project>