Skip to content
Snippets Groups Projects
build.xml 6.48 KiB
Newer Older
  • Learn to ignore specific revisions
  • <project name="installation" default="dist" basedir="..">
    
      <import file="../../openbis-common/build/build-common.xml" />
    
    	
    	<project-classpath name="ecp" classes="${classes}" />
    
    	<property name="original.dist" value="dist" />
    	<property name="mainfolder" value="installation" />
    	
      <property name="classes.installation" value="../installation/targets/ant/classes" />
      <property name="classes.common" value="../common/targets/ant/classes" />
    
      <!-- absolute path referenced from IzPack Ant task -->
      <property name="installer.basedir" value="${basedir}/resource/installer" />
      <!-- relative path referenced from within the installer compilation --> 
      <property name="installer.dist.dir" value="${basedir}/${dist}/installer" />
      <property name="installer.resourcedir" value="${installer.dist.dir}" />
      <property name="installer.jar.file" value="${basedir}/${dist}/openBIS-installer.jar" />
    	
    	<path id="izpack.classpath">
    	    <pathelement path="${classpath}"/>
    	    <fileset dir="${lib}">
    	        <include name="izpack/*.jar"/>
    	        <include name="commons-io/commons-io.jar"/>
    	        <include name="commons-lang/commons-lang.jar"/>
    	    </fileset>
    	</path>
      <taskdef name="izpack" classpathref="izpack.classpath" classname="com.izforge.izpack.ant.IzPackTask"/>
    	
    	<target name="compile" depends="build-common.compile" />
    
    	<target name="run-tests">
    		<antcall target="build-common.run-tests">
    			<param name="test.suite" value="tests.xml" />
    		</antcall>
    	</target>
    
    	<target name="dist" depends="dist-standard-technologies">
    
    	<target name="dist-standard-technologies" depends="compile">
    		<build-info revision="revision.number" version="version.number" clean="clean.flag" />
    		
        <antcall target="create-installation-tarball">
          <param name="openbis.server.zip.folder" value="../openbis_standard_technologies/targets/dist" />
    
          <param name="datastore.server.zip.folder" value="../openbis_standard_technologies/targets/dist" />
    
          <param name="variant" value="-standard-technologies" />
          <param name="database.kind" value="standard-technologies" />
          <param name="installation.customize.folder" value="../openbis_standard_technologies/dist/tarball/installer" />
    
          <param name="is-standard-technologies" value="true" />
    
        </antcall>
    	</target>
    	
    
    	<target name="create-installation-tarball">
    
        <pathconvert property="extracted.version">
          <path>
            <fileset dir="${openbis.server.zip.folder}">
              <include name="openBIS-server${variant}-*.zip"/>
            </fileset>
          </path>
          <chainedmapper>
            <flattenmapper/>
            <filtermapper>
              <replaceregex pattern="openBIS-server${variant}-(.*)\.zip" replace="\1"/>
            </filtermapper>
          </chainedmapper>
        </pathconvert>
    	  <property name="tarball.basename" value="openBIS-installation${variant}-${extracted.version}" />
    
    		
        <antcall target="create-installer"/>
    		
    		<tar destfile="${basedir}/${dist}/${tarball.basename}.tar.gz" compression="gzip">
    		  <tarfileset dir="${basedir}/resource/tarball"
    		              prefix="${tarball.basename}/">
    		    <include name="*.*"/>
    		  	<exclude name="*.sh"/>
    		  </tarfileset>
    		  <tarfileset dir="${basedir}/resource/tarball"
    		              prefix="${tarball.basename}/"
    		  	          filemode="755">
    		    <include name="*.sh"/>
    		  </tarfileset>
    		  <tarfileset dir="${dist}"
    		              prefix="${tarball.basename}/">
    		    <include name="*-installer.jar"/>
    		  </tarfileset>
    
    		</tar>
    		<delete file="${installer.jar.file}" />
    
    	</target>
    
    	
    	<!--
    	   params
          1) openbis.server.zip.folder
          2) datastore.server.zip.folder
          3) variant ("" or "-screening")
          4) database.kind
          5) installation.customize.folder
                declares a local folder for (e.g. screening/dist/installer), where the different
                installation can define customizations for their installers.
    
          6) is-standard-technologies
                if true wizard page for selecting/deselecting technologies will be shown
    
    	 -->
      <target name="create-installer">
    
    		<mkdir dir="${installer.dist.dir}" />
    		
      	<unzip dest="${installer.dist.dir}">
    		    <fileset dir="${openbis.server.zip.folder}">
    
    		        <include name="openBIS-server${variant}-*.zip"/>
    
    		    </fileset>
    	      <fileset dir="${datastore.server.zip.folder}">
    
              <include name="datastore_server${variant}-*.zip"/>
    
    	      </fileset>
    		</unzip>
    		
    		<copy todir="${installer.dist.dir}">
    		    <fileset dir="${installer.basedir}">
    		      <include name="**/*"/>
    		      <exclude name="**/.svn/*"/>
    		    </fileset>
    		</copy>
    		<copy todir="${installer.dist.dir}" overwrite="true">
    		    <fileset dir="${installation.customize.folder}">
    		      <include name="**/*"/>
    		      <exclude name="**/.svn/*"/>
    		    </fileset>
    		</copy>
    
    		<!-- this suffix will be used by the installer to check if there are database connections -->
    	  <property name="installer.database.kind" value="${database.kind}" />
    
      	<replace file="${installer.dist.dir}/install.xml" token="is-standard-technologies-value-created-by-ant-script" value="${is-standard-technologies}"/>
    
    		<izpack input="${installer.dist.dir}/install.xml" 
    
    		        output="${installer.jar.file}"
    			      inheritAll="true"
    		        installerType="standard"
    		        basedir="${basedir}"/>
    		
        <jar update="true" destfile="${installer.jar.file}">
        	<fileset dir="${classes.installation}">
        		<include name="ch/systemsx/cisd/openbis/installer/izpack/**/*"/>
        	</fileset>
        	<fileset dir="${classes.common}">
    
        		<include name="**/*.class"/>
    
        	</fileset>
        	
        	<zipfileset src="${lib}/postgresql/postgresql.jar">
        		<exclude name="META_INF/*"/>
        		<include name="**/*"/>
        	</zipfileset>
    
        	<zipfileset src="${lib}/cisd-base/cisd-base.jar">
        		<exclude name="META_INF/*"/>
        		<include name="**/*"/>
        	</zipfileset>
        	<zipfileset src="${lib}/commons-io/commons-io.jar">
        		<exclude name="META_INF/*"/>
        		<include name="**/*"/>
        	</zipfileset>
    
        	<zipfileset src="${lib}/log4j/log4j.jar">
        		<exclude name="META_INF/*"/>
        		<include name="**/*"/>
        	</zipfileset>
    
        </jar>
    		
    		<delete dir="${installer.dist.dir}" />
    
    	</target>
    	
    
    	<!--
            // Task for continuous integration server.
      -->
    
      <target name="clean" description="Cleans distribution directory.">
        <delete dir="${dist}" failonerror="true" />
        <mkdir dir="${dist}" />
    
      	<!-- make Hudson happy (it expects a test-output folder -->
        <mkdir dir="${dist}/../test-output" />
    
    	<target name="ci" depends="clean, dist, build-common.ci" />