build.xml
author chrislovsund@netbeans.org
Wed, 15 Aug 2012 19:43:54 +0200
branchrelease72
changeset 277 092b7a73a3ff
parent 43 88e04440a445
child 278 30a3cac5c474
permissions -rw-r--r--
Close release72 branch
jrechtacek@0
     1
<?xml version="1.0" encoding="UTF-8"?>
jrechtacek@0
     2
<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
jrechtacek@0
     3
<!-- for some information on what you could do (e.g. targets to override). -->
jrechtacek@0
     4
<!-- If you delete this file and reopen the project it will be recreated. -->
jrechtacek@0
     5
<project name="plsql support" basedir="." default="netbeans">
jrechtacek@0
     6
    <description>Builds the module suite plsql support.</description>
jrechtacek@0
     7
    
jrechtacek@20
     8
    <property file="nbproject/private/platform-private.properties"/>
jrechtacek@0
     9
    <property file="build.properties"/>
jrechtacek@11
    10
    <property file="nbproject/platform.properties"/>
jrechtacek@0
    11
    
jrechtacek@0
    12
    <property name="use.timestamp" value="true"/>
jrechtacek@15
    13
    <property name="timestamp.file" value=".lastModified"/>
jrechtacek@0
    14
    
jrechtacek@0
    15
    <property environment="env"/>
chrislovsund@266
    16
   <property name="env.BUILD_NUMBER" value="0" description="Set a fake value if not run from Jenkins"/>
chrislovsund@266
    17
   <property name="env.next_jira_release_version" value="8.72.0" description="Set a fake value if not run from Jenkins"/>
chrislovsund@266
    18
   <property name="new_version" value="${env.next_jira_release_version}.${env.BUILD_NUMBER}" description="Set a version number based on info from Jenkins"/>
chrislovsund@266
    19
jrechtacek@0
    20
    <condition property="build.id" value="${env.BUILD_ID}" else="dev">
jrechtacek@0
    21
        <isset property="env.BUILD_ID"/>
jrechtacek@0
    22
    </condition>
jrechtacek@0
    23
    
jrechtacek@0
    24
    <target name="calculate-netbeans-url" unless="skip.calculation">
jrechtacek@0
    25
        <get src="${netbeans.base.url}" dest="netbeans.html" usetimestamp="${use.timestamp}" verbose="true" ignoreerrors="${offline}"/>
jrechtacek@0
    26
        <loadfile srcfile="netbeans.html" property="netbeans.binaries.url">
jrechtacek@0
    27
            <filterchain>
jrechtacek@0
    28
                <tokenfilter>
jrechtacek@0
    29
                    <containsregex pattern=".*href=&quot;(netbeans-[a-z0-9-.]*javaee\.zip)&quot;.*" replace="${netbeans.base.url}/\1" flags="im"/>
jrechtacek@0
    30
                </tokenfilter>
jrechtacek@0
    31
            </filterchain>
jrechtacek@0
    32
        </loadfile>
jrechtacek@0
    33
    </target>
jrechtacek@0
    34
jrechtacek@0
    35
    <target name="download-binaries" depends="calculate-netbeans-url" unless="skip.download">
jrechtacek@0
    36
        <parallel>
jrechtacek@0
    37
            <get src="${netbeans.binaries.url}" dest="netbeans.zip" usetimestamp="${use.timestamp}" verbose="false" ignoreerrors="${offline}"/>
jrechtacek@0
    38
        </parallel>
jrechtacek@0
    39
     </target>
jrechtacek@0
    40
     
jrechtacek@0
    41
     <target name="check-binaries">
jrechtacek@0
    42
        <condition property="binaries.uptodate">
jrechtacek@0
    43
            <and>
jrechtacek@0
    44
                <uptodate targetfile="${timestamp.file}">
jrechtacek@0
    45
                    <srcfiles dir="." includes="*.zip"/>
jrechtacek@0
    46
                </uptodate>
jrechtacek@0
    47
            </and>            
jrechtacek@0
    48
        </condition>
jrechtacek@0
    49
     </target>     
jrechtacek@0
    50
jrechtacek@0
    51
     <target name="unzip-binaries" unless="binaries.uptodate">
jrechtacek@0
    52
        <echo message="New binaries downloaded - re-installing."/>
jrechtacek@0
    53
        <delete dir="ide"/>
jrechtacek@0
    54
        <unzip src="netbeans.zip" dest="ide"/>
jrechtacek@0
    55
        <touch file="${timestamp.file}"/>        
jrechtacek@0
    56
    </target>
jrechtacek@0
    57
    
jrechtacek@0
    58
    <target name="update-binaries" depends="download-binaries,check-binaries,unzip-binaries"/>
jrechtacek@0
    59
    
jrechtacek@11
    60
    <target name="check-harness">
jrechtacek@8
    61
        <echo>nbplatform.default.netbeans.dest.dir resolved to ${nbplatform.default.netbeans.dest.dir}</echo>
jrechtacek@0
    62
        <echo>nbplatform.default.harness.dir resolved to ${nbplatform.default.harness.dir}</echo>
jrechtacek@15
    63
        <fail message="Harness is missing. Specify nbplatform.default.netbeans.dest.dir={path-to-your-sources-root}/ide/netbeans in nbproject/private/platform-private.propetries">
jrechtacek@11
    64
            <condition>
jrechtacek@11
    65
                <not>
jrechtacek@11
    66
                    <available file="${nbplatform.default.harness.dir}" type="dir"/>
jrechtacek@11
    67
                </not>
jrechtacek@11
    68
            </condition>
jrechtacek@11
    69
        </fail>
jrechtacek@11
    70
    </target>
jrechtacek@11
    71
    
jrechtacek@11
    72
    <target name="build-suite" depends="check-harness">
jrechtacek@0
    73
        <ant antfile="build-suite.xml" target="build" inheritAll="false"/>
jrechtacek@0
    74
    </target>
jrechtacek@0
    75
    
jrechtacek@10
    76
    <target name="printinfo">
jrechtacek@10
    77
      <property environment="env" />
jrechtacek@10
    78
      <echo message="${env.BUILD_TAG}"/>
jrechtacek@10
    79
      <echo message="${env.JAVA_HOME}"/>
jrechtacek@10
    80
    </target>
jrechtacek@10
    81
    
jrechtacek@0
    82
    <target name="netbeans" depends="update-binaries,build-suite"/>
jrechtacek@0
    83
    <target name="build" depends="netbeans"/>
jrechtacek@0
    84
    
jrechtacek@0
    85
    <target name="clean">
jrechtacek@8
    86
        <echo>nbplatform.default.netbeans.dest.dir resolved to ${nbplatform.default.netbeans.dest.dir}</echo>
jrechtacek@0
    87
        <echo>nbplatform.default.harness.dir resolved to ${nbplatform.default.harness.dir}</echo>
jrechtacek@0
    88
        <ant antfile="build-suite.xml" target="clean" inheritAll="false"/>
jrechtacek@0
    89
    </target>
jrechtacek@0
    90
    
jrechtacek@0
    91
    <target name="real-clean" depends="clean">
jrechtacek@0
    92
        <echo message="Cleaning netbeans IDE"/>
jrechtacek@0
    93
        <delete dir="build"/>
jrechtacek@0
    94
        <delete dir="dist"/>
jrechtacek@0
    95
        <delete dir="ide"/>
jrechtacek@0
    96
        <delete>
jrechtacek@0
    97
            <fileset dir="." includes="*.zip"/>
jrechtacek@0
    98
        </delete>
jrechtacek@0
    99
        <delete>
jrechtacek@0
   100
            <fileset dir="." includes="*.html"/>
jrechtacek@0
   101
        </delete>
jrechtacek@0
   102
        <delete file="${timestamp.file}"/>
jrechtacek@0
   103
    </target>
jrechtacek@0
   104
jrechtacek@7
   105
    <target name="nbms" depends="update-binaries">
jrechtacek@7
   106
        <ant antfile="build-suite.xml" target="nbms" inheritAll="false"/>
jrechtacek@7
   107
    </target>
jrechtacek@7
   108
    
jrechtacek@7
   109
    <target name="daily" depends="update-binaries,build">
jrechtacek@7
   110
        <mkdir dir="dist"/>
darrshan@35
   111
        <zip destfile="dist/netbeans-701-${build.id}-plsql.zip" duplicate="add">
jrechtacek@7
   112
            <zipfileset dir="build/cluster" prefix="netbeans/extra"/>
jrechtacek@7
   113
            <zipfileset dir="ide/netbeans" prefix="netbeans"/>
jrechtacek@7
   114
        </zip>
jrechtacek@7
   115
    </target>
jrechtacek@7
   116
chrislovsund@40
   117
   <property name="ant.contrib.jar" value="${basedir}/Libraries/ThirdParty/ant/ant-contrib-1.0b3.jar" />
chrislovsund@40
   118
   <taskdef resource="net/sf/antcontrib/antcontrib.properties">
chrislovsund@40
   119
      <classpath>
chrislovsund@40
   120
         <pathelement location="${ant.contrib.jar}"/>
chrislovsund@40
   121
      </classpath>
chrislovsund@40
   122
   </taskdef>
chrislovsund@40
   123
chrislovsund@40
   124
   <path id="manifest.file.paths">
chrislovsund@40
   125
      <fileset dir="${basedir}">
chrislovsund@40
   126
         <include name="**/manifest.mf"/>
chrislovsund@40
   127
<!--            <exclude name="**/Libraries/ThirdParty/**"/>-->
chrislovsund@40
   128
      </fileset>
chrislovsund@40
   129
   </path>
chrislovsund@40
   130
chrislovsund@40
   131
   <target name="-find-modules-for-update" description="find all modules in suite that has changes since last release" >
chrislovsund@40
   132
      <loadproperties srcfile="nbproject/project.properties" />
chrislovsund@40
   133
      <mkdir dir="build"/>
chrislovsund@40
   134
      <delete file="build/nbms_update.properties" />
chrislovsund@40
   135
chrislovsund@40
   136
      <echo level="verbose">${modules}</echo>
chrislovsund@40
   137
chrislovsund@40
   138
      <foreach param="module.path" target="-vcs-log" list="${modules}" delimiter=":"/>
chrislovsund@266
   139
<!--        <echoproperties srcfile="build/nbms_update.properties" />-->
chrislovsund@266
   140
   </target>
chrislovsund@266
   141
chrislovsund@266
   142
   <target name="-add-kit-module" description="add kit module to update" >
chrislovsund@40
   143
      <propertyfile  file="build/nbms_update.properties">
chrislovsund@40
   144
         <entry key="selected.modules" default="" operation="+" value="plsql-support.kit/manifest.mf:"/>
chrislovsund@40
   145
      </propertyfile>
chrislovsund@40
   146
   </target>
chrislovsund@40
   147
chrislovsund@40
   148
   <target name="-vcs-log" description="use mercurial to check if the last commit was a release commit">
chrislovsund@40
   149
      <echo level="info">module.path: ${module.path}</echo>
chrislovsund@40
   150
chrislovsund@40
   151
        <!-- find out revision number of HEAD, need svn.exe installed on local machine -->
chrislovsund@40
   152
      <exec executable="hg" outputproperty="hglog.out" >
chrislovsund@40
   153
         <arg line="log -l 1 --style compact '${module.path}'"/>
chrislovsund@40
   154
      </exec>
chrislovsund@40
   155
      <echo level="verbose">${hglog.out}</echo>
chrislovsund@40
   156
chrislovsund@40
   157
      <echo level="verbose">${force.increment}</echo>
chrislovsund@40
   158
      <condition property="nbm.update.needed">
chrislovsund@40
   159
         <or>
chrislovsund@40
   160
            <not>
chrislovsund@40
   161
               <contains string="${hglog.out}" substring="automated commit from "/>
chrislovsund@40
   162
            </not>
chrislovsund@40
   163
            <istrue value="${force.increment}" />
chrislovsund@40
   164
         </or>
chrislovsund@40
   165
      </condition>
chrislovsund@40
   166
      <echo level="verbose">nbm.update.needed=${nbm.update.needed}</echo>
chrislovsund@40
   167
      <antcall target="-concat-modules"  inheritall="true" />
chrislovsund@40
   168
   </target>
chrislovsund@40
   169
chrislovsund@40
   170
   <target name="-concat-modules" if="nbm.update.needed" description="Concatinate the selected module paths and put in .properties file">
chrislovsund@40
   171
      <echo>Module needs to be updated: ${nbm.update.needed}</echo>
chrislovsund@40
   172
      <echo level="info">module.path: ${module.path}</echo>
chrislovsund@40
   173
      <propertyfile  file="build/nbms_update.properties">
chrislovsund@40
   174
         <entry key="selected.modules" default="" operation="+" value="${module.path}/manifest.mf:"/>
chrislovsund@40
   175
      </propertyfile>
chrislovsund@40
   176
   </target>
chrislovsund@40
   177
chrislovsund@40
   178
   <target name="show-current-versions" description="show current specification versions for all modules">
chrislovsund@40
   179
      <foreach param="manifest.file" target="current-version" >
chrislovsund@40
   180
         <path refid="manifest.file.paths"/>
chrislovsund@40
   181
      </foreach>
chrislovsund@40
   182
   </target>
chrislovsund@40
   183
chrislovsund@40
   184
   <target name="current-version" depends="-read-version" description="show current specification.version">
chrislovsund@40
   185
   </target>
chrislovsund@40
   186
chrislovsund@266
   187
   <target name="update-version" depends="-find-modules-for-update, -add-kit-module"
chrislovsund@266
   188
           description="update version for all modules in suite that has changes since last release">
chrislovsund@266
   189
      <echo level="info">Updating modules to version: ${new_version}</echo>
chrislovsund@40
   190
      <loadproperties srcfile="build/nbms_update.properties" />
chrislovsund@40
   191
      <echo>selected.modules=${selected.modules}</echo>
chrislovsund@266
   192
      <foreach param="manifest.file" target="-update-meta-files" >
chrislovsund@40
   193
         <path path="${selected.modules}"/>
chrislovsund@40
   194
      </foreach>
chrislovsund@40
   195
   </target>
chrislovsund@40
   196
chrislovsund@40
   197
   <target name="-read-version">
chrislovsund@40
   198
      <echo level="verbose">manifest.file: ${manifest.file}</echo>
chrislovsund@40
   199
      <property file="${manifest.file}"></property>
chrislovsund@40
   200
      <property name="specification.version" value="${OpenIDE-Module-Specification-Version}"/>
chrislovsund@40
   201
      <echo>OpenIDE-Module: ${OpenIDE-Module}</echo>
chrislovsund@266
   202
      <echo>Current build number:${env.BUILD_NUMBER}</echo>
chrislovsund@40
   203
   </target>
chrislovsund@40
   204
chrislovsund@266
   205
   <target name="-update-meta-files" depends="-read-version">
chrislovsund@266
   206
      <manifest file="${manifest.file}" mode="update" >
chrislovsund@266
   207
         <attribute name="OpenIDE-Module-Specification-Version" value="${new_version}" />
chrislovsund@40
   208
      </manifest>
chrislovsund@266
   209
      <replaceregexp match="(dependency\D*code-name-base\W${OpenIDE-Module}\W/\D*)(\d+\.\d+\.\d+\.\d+)" byline="false"
chrislovsund@266
   210
                     file="plsql-support.kit/nbproject/project.xml" replace="\1${new_version}"/>
chrislovsund@40
   211
   </target>
chrislovsund@40
   212
chrislovsund@40
   213
   <target name="all">
chrislovsund@40
   214
      <propertyfile  file="build_info.properties">
chrislovsund@40
   215
         <entry key="build.major.number" type="int" operation="+" value="1" />
chrislovsund@40
   216
         <entry key="build.minor.number" type="int" operation="+" value="1" />
chrislovsund@40
   217
         <entry key="build.revision.number" type="int" operation="+" value="1" />
chrislovsund@40
   218
      </propertyfile>
chrislovsund@40
   219
   </target>
chrislovsund@40
   220
chrislovsund@43
   221
   <target name="echo-manifest" description="echo kit version that is found in manifest. Used by hudson" >
chrislovsund@43
   222
      <echoproperties srcfile="plsql-support.kit/manifest.mf"/>
chrislovsund@43
   223
   </target>
chrislovsund@43
   224
jrechtacek@0
   225
</project>