| <?xml version="1.0" encoding="UTF-8"?> |
| <project name="build-web-server" default="precommit" xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <path id="bundles"/> |
| |
| <property file="${basedir}/../build.properties"/> |
| <property file="${basedir}/../build.versions"/> |
| <import file="${basedir}/../virgo-build/multi-bundle/default.xml"/> |
| |
| <target name="precommit" depends="clean, clean-integration, test, package, smoke-test" |
| description="Performs a CI server-like build, should be run prior to performing a Git push"/> |
| |
| <target name="fetch-kernel-updatesite"> |
| <mkdir dir="${target.dir}"/> |
| |
| <condition property="dependancy.folder" value="milestone" else="${adjusted.release.type}"> |
| <or> |
| <contains string="${org.eclipse.virgo.kernel}" substring=".M"/> |
| <contains string="${org.eclipse.virgo.kernel}" substring=".RC"/> |
| </or> |
| </condition> |
| |
| <condition property="dependancy.folder" value="release" else="${adjusted.release.type}"> |
| <contains string="${org.eclipse.virgo.kernel}" substring=".RELEASE"/> |
| </condition> |
| |
| <get src="http://build.eclipse.org/rt/virgo/zips/${dependancy.folder}/VK/${org.eclipse.virgo.kernel}/virgo-kernel-updatesite-${org.eclipse.virgo.kernel}.zip" |
| dest="${target.dir}/virgo-kernel-updatesite-${org.eclipse.virgo.kernel}.zip" |
| usetimestamp="true" /> |
| |
| <echo message="Fetched the Kernel updatesite zip to ${target.dir}/virgo-kernel-updatesite-${org.eclipse.virgo.kernel}.zip"/> |
| </target> |
| |
| <target name="package" depends="fetch-kernel-updatesite"> |
| <delete dir="${package.output.dir}" quiet="true"/> |
| <mkdir dir="${package.output.dir}"/> |
| |
| <property name="kernel.stage.file" value=""/> |
| <property name="tomcat.server.resources" value="${target.dir}/tomcat_server_resources"/> |
| <property name="repository.ext" value="${tomcat.server.resources}/repository/ext"/> |
| <property name="repository.usr" value="${tomcat.server.resources}/repository/usr"/> |
| |
| <unzip src="${target.dir}/virgo-kernel-updatesite-${org.eclipse.virgo.kernel}.zip" dest="${p2.repository.dir}"> |
| <globmapper from="virgo-kernel-updatesite-${org.eclipse.virgo.kernel}/*" to="*"/> |
| </unzip> |
| <delete file="${target.dir}/virgo-kernel-updatesite-${org.eclipse.virgo.kernel}.zip" quiet="true"/> |
| |
| <unzip src="${p2.repository.dir}/binary/kernel_specific_resources_1.0.0" dest="${tomcat.server.resources}"> |
| <globmapper from="kernel_specific_resources_1.0.0/*" to="*"/> |
| </unzip> |
| |
| <mkdir dir="${repository.usr}"/> |
| |
| <antcall target="package.config"/> |
| <antcall target="package.docs"/> |
| <antcall target="package.lib"/> |
| <antcall target="package.pickup"/> |
| <antcall target="package.repository"/> |
| <antcall target="package.resources"/> |
| <antcall target="package.publish"/> |
| |
| </target> |
| |
| <target name="package.publish"> |
| <property name="tomcat.server.resources.location" value="${target.dir}/tomcat_server_resources_zipped"/> |
| <zip destfile="${tomcat.server.resources.location}/binary/tomcat_server_resources"> |
| <zipfileset dir="${tomcat.server.resources}"/> |
| </zip> |
| <delete dir="${tomcat.server.resources}" quiet="true"/> |
| |
| <!--prepare tomcat server feature for publishing --> |
| <copy todir="${target.dir}/assembly/features" failonerror="false"> |
| <fileset dir="${basedir}/publish_resources/features"/> |
| </copy> |
| |
| <!-- proceed with publish --> |
| <antcall target="fetch-unzipped-virgo-build-tools"/> |
| |
| <property name="p2.products.location" value="${basedir}/publish_resources/products"/> |
| <antcall target="p2.publish-binary"> |
| <param name="repository" value="${p2.repository.dir}"/> |
| <param name="source" value="${tomcat.server.resources.location}"/> |
| </antcall> |
| <echo message="Published the tomcat server resources to ${p2.repository.dir}."/> |
| |
| <antcall target="p2.publish-bundles-features"> |
| <param name="repository" value="${p2.repository.dir}"/> |
| <param name="source" value="${target.dir}/assembly"/> |
| </antcall> |
| <echo message="Published bundles and features to ${p2.repository.dir}."/> |
| |
| <antcall target="p2.publish-product"> |
| <param name="repository" value="${p2.repository.dir}"/> |
| <param name="product.file.location" value="${p2.products.location}/tomcat-server/tomcat-server.product"/> |
| </antcall> |
| <echo message="Published tomcat server product to ${p2.repository.dir}."/> |
| |
| <antcall target="p2.install-virgo-product"> |
| <param name="repository" value="${p2.repository.dir}"/> |
| <param name="destination" value="${package.output.dir}"/> |
| <param name="product.iu" value="tomcat-server.product"/> |
| </antcall> |
| <echo message="Installed Virgo Tomcat Server for distribution purposes."/> |
| |
| <mkdir dir="${artifacts.dir}"/> |
| |
| <delete dir="${package.output.dir}/Eclipse.app" quiet="true"/> |
| |
| <zip destfile="${package.output.file}"> |
| <zipfileset dir="${package.dir}" includes="${package.basename}/bin/*.sh" filemode="755"/> |
| <zipfileset dir="${package.dir}" includes="${package.basename}/configuration/org.eclipse.virgo.kernel.jmxremote.access.properties" filemode="600"/> |
| <zipfileset dir="${package.dir}"> |
| <exclude name="${package.basename}/bin/*.sh"/> |
| <exclude name="${package.basename}/configuration/org.eclipse.virgo.kernel.jmxremote.access.properties"/> |
| </zipfileset> |
| </zip> |
| <zip destfile="${updatesite.output.file}"> |
| <zipfileset dir="${p2.repository.dir}"/> |
| </zip> |
| |
| <delete dir="${tomcat.server.resources.location}" quiet="true"/> |
| <delete dir="${target.dir}/assembly" quiet="true"/> |
| <delete dir="${tools.dir}" quiet="true"/> |
| </target> |
| |
| <target name="package.config"> |
| <copy todir="${tomcat.server.resources}/configuration" failonerror="false" overwrite="true"> |
| <fileset dir="${basedir}/configuration"/> |
| </copy> |
| |
| <replaceregexp match="initialArtifacts =.*\.springdm" |
| replace="initialArtifacts=repository:plan/org.eclipse.virgo.kernel.userregion.springdm, repository:plan/org.eclipse.virgo.web.tomcat" flags="s" |
| file="${tomcat.server.resources}/configuration/org.eclipse.virgo.kernel.userregion.properties"/> |
| |
| <replaceregexp match="virgo-kernel" replace="virgo-server" flags="g" |
| file="${tomcat.server.resources}/configuration/serviceability.xml"/> |
| </target> |
| |
| <target name="package.docs" depends="ivy.init"> |
| <ivy:resolve resolveId="copy.path" file="${basedir}/docs-ivy.xml" transitive="false" conf="docs"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${basedir}/target/docs/[artifact]-[revision].[ext]" conf="docs" type="zip, pdf"/> |
| |
| <copy todir="${tomcat.server.resources}/docs/virgo-user-guide/pdf" flatten="true"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-user-guide*.pdf"/> |
| </fileset> |
| </copy> |
| |
| <copy todir="${tomcat.server.resources}/docs/virgo-programmer-guide/pdf" flatten="true"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-programmer-guide*.pdf"/> |
| </fileset> |
| </copy> |
| |
| <unzip dest="${tomcat.server.resources}/docs/virgo-user-guide"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-user-guide*.zip"/> |
| </fileset> |
| </unzip> |
| |
| <unzip dest="${tomcat.server.resources}/docs/virgo-programmer-guide"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-programmer-guide*.zip"/> |
| </fileset> |
| </unzip> |
| |
| </target> |
| |
| <target name="package.lib"> |
| <echo file="${tomcat.server.resources}/lib/.version" append="true" |
| message="virgo.server.version=${bundle.version}
"/> |
| </target> |
| |
| <target name="package.pickup" depends="ivy.init"> |
| <ivy:resolve resolveId="copy.path" file="${basedir}/pickup-ivy.xml" transitive="true"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${tomcat.server.resources}/pickup/[artifact]_[revision].[ext]" type="jar, war, wab" conf="pickup"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${tomcat.server.resources}/pickup/[artifact]_[revision].[ext]" type="plan" conf="pickup-plan"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${repository.ext}/[artifact]_[revision].[ext]" type="jar, war, wab" conf="pickup-plan"/> |
| </target> |
| |
| <target name="package.repository" depends="ivy.init"> |
| <ivy:resolve resolveId="copy.path" file="${basedir}/repository-ivy.xml" transitive="false"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${repository.ext}/[artifact]_[revision].[ext]" conf="ext" type="library,jar,plan"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${repository.ext}/[artifact].[ext]" conf="ext" type="configuration"/> |
| |
| <ivy:resolve resolveId="copy.path" file="${basedir}/repository-ivy.xml" transitive="true"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${repository.ext}/[artifact]_[revision].[ext]" conf="transitive" type="library,jar,plan" /> |
| <ivy:retrieve resolveId="copy.path" pattern="${repository.ext}/[artifact].[ext]" conf="transitive" type="configuration" /> |
| </target> |
| |
| <target name="package.resources"> |
| <copy todir="${tomcat.server.resources}" failonerror="false"> |
| <fileset dir="${basedir}/resources"/> |
| </copy> |
| </target> |
| |
| <target name="smoke-test" description="Runs a smoke test on the packaged build"> |
| <path id="smoke.test.bundles"> |
| <pathelement location="${basedir}/../org.eclipse.virgo.server.smoketest" /> |
| </path> |
| <antcall target="test.pre"/> |
| <all-bundles target="test-package" buildpathRef="smoke.test.bundles"> |
| <property name="package.output.file" value="${package.output.file}"/> |
| <property name="package.basename" value="${package.basename}"/> |
| <property name="test-results.output.dir" value="${test-results.output.dir}"/> |
| </all-bundles> |
| <antcall target="test.post"/> |
| </target> |
| |
| </project> |