| <?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"/> |
| |
| <!--P2 publishing properties--> |
| <property name="publishing.dir" value="${basedir}/target/repository"/> |
| <property name="distro.res" value="${basedir}/distro_resources"/> |
| <property name="p2.repo.url" value="file:///${publishing.dir}"/> |
| <property name="product.file" value="${basedir}/org.eclipse.virgo.kernel.product"/> |
| <property name="lib.product.file" value="${basedir}/org.eclipse.virgo.kernel.lib.product"/> |
| <property name="lib.kernel.product.file" value="${basedir}/org.eclipse.virgo.kernel.lib.kernel.product"/> |
| <property name="repository.ext.product.file" value="${basedir}/org.eclipse.virgo.kernel.repository.ext.product"/> |
| |
| <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"> |
| <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-${org.eclipse.virgo.kernel}.zip" |
| dest="${target.dir}/virgo-kernel-${org.eclipse.virgo.kernel}.zip" |
| usetimestamp="true" /> |
| |
| <echo message="Fetched the Kernel zip to ${target.dir}/virgo-kernel-${org.eclipse.virgo.kernel}.zip"/> |
| </target> |
| |
| <target name="package" depends="fetch-kernel"> |
| <delete dir="${package.output.dir}" quiet="true"/> |
| <mkdir dir="${package.output.dir}"/> |
| |
| <property name="kernel.stage.file" value=""/> |
| <property name="repository.dir" value="${package.output.dir}/repository"/> |
| <property name="repository.ext" value="${repository.dir}/ext"/> |
| <property name="repository.usr" value="${repository.dir}/usr"/> |
| |
| <unzip src="${target.dir}/virgo-kernel-${org.eclipse.virgo.kernel}.zip" dest="${package.output.dir}"> |
| <globmapper from="virgo-kernel-${org.eclipse.virgo.kernel}/*" to="*"/> |
| </unzip> |
| |
| <antcall target="package.bin"/> |
| <antcall target="package.config"/> |
| <antcall target="package.docs"/> |
| <antcall target="package.lib"/> |
| <antcall target="package.pickup"/> |
| <antcall target="package.repository"/> |
| <antcall target="package.resources"/> |
| |
| <mkdir dir="${package.output.dir}/work"/> |
| <mkdir dir="${repository.usr}"/> |
| |
| <mkdir dir="${artifacts.dir}"/> |
| <zip destfile="${package.output.file}"> |
| <zipfileset dir="${package.dir}" includes="${package.basename}/bin/*.sh" filemode="755"/> |
| <zipfileset dir="${package.dir}" includes="${package.basename}/config/org.eclipse.virgo.kernel.jmxremote.access.properties" filemode="600"/> |
| <zipfileset dir="${package.dir}"> |
| <exclude name="${package.basename}/bin/*.sh"/> |
| <exclude name="${package.basename}/config/org.eclipse.virgo.kernel.jmxremote.access.properties"/> |
| </zipfileset> |
| </zip> |
| </target> |
| |
| <target name="package.bin"> |
| <chmod perm="755"> |
| <fileset dir="${package.output.dir}/bin"> |
| <include name="*.sh"/> |
| </fileset> |
| </chmod> |
| </target> |
| |
| <target name="package.config"> |
| <copy todir="${package.output.dir}/config" failonerror="false" overwrite="true"> |
| <fileset dir="${basedir}/config"/> |
| </copy> |
| |
| <chmod perm="600"> |
| <fileset dir="${package.output.dir}/config"> |
| <include name="org.eclipse.virgo.kernel.jmxremote.access.properties"/> |
| </fileset> |
| </chmod> |
| |
| <replaceregexp match="initialArtifacts =.*\.springdm" |
| replace="initialArtifacts=repository:plan/org.eclipse.virgo.kernel.userregion.springdm, repository:plan/org.eclipse.virgo.web.tomcat" flags="s" |
| file="${package.output.dir}/config/org.eclipse.virgo.kernel.userregion.properties"/> |
| |
| <replaceregexp match="virgo-kernel" replace="virgo-server" flags="g" |
| file="${package.output.dir}/config/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="${package.output.dir}/docs/virgo-user-guide/pdf" flatten="true"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-user-guide*.pdf"/> |
| </fileset> |
| </copy> |
| |
| <copy todir="${package.output.dir}/docs/virgo-programmer-guide/pdf" flatten="true"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-programmer-guide*.pdf"/> |
| </fileset> |
| </copy> |
| |
| <unzip dest="${package.output.dir}/docs/virgo-user-guide"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-user-guide*.zip"/> |
| </fileset> |
| </unzip> |
| |
| <unzip dest="${package.output.dir}/docs/virgo-programmer-guide"> |
| <fileset dir="${basedir}/target/docs"> |
| <include name="**/virgo-programmer-guide*.zip"/> |
| </fileset> |
| </unzip> |
| |
| </target> |
| |
| <target name="package.lib"> |
| <echo file="${package.output.dir}/lib/.version" append="true" |
| message="virgo.server.version=${bundle.version}
"/> |
| |
| <replaceregexp match="virgo-kernel" replace="virgo-server" flags="g" |
| file="${package.output.dir}/lib/java6-server.profile"/> |
| </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="${package.output.dir}/pickup/[artifact]-[revision].[ext]" type="jar, war, wab" conf="pickup"/> |
| <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/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"> |
| <move file="${package.output.dir}/About.html" tofile="${package.output.dir}/AboutKernel.html"/> |
| |
| <copy todir="${package.output.dir}" 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> |
| |
| |
| <target name="p2.publish" depends="package.resources, p2.extract-publisher" |
| description="Publishes bundles, features and product"> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2bundles" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-bundles ${package.output.dir}/lib,${package.output.dir}/repository/ext"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-configs all"/> |
| </java> |
| |
| <sshexec host="build.eclipse.org" |
| username="${eclipse.buildId}" |
| keyfile="${key.file}" |
| passphrase="${passphrase}" |
| command="mkdir -pv /opt/public/rt/virgo/update-site/${release.type}/${build.stamp}"/> |
| |
| <scp todir="${eclipse.buildId}@build.eclipse.org:/opt/public/rt/virgo/update-site/${release.type}/${build.stamp}/" |
| keyfile="${key.file}" |
| passphrase="${passphrase}"> |
| <fileset dir="${publishing.dir}"/> |
| </scp> |
| |
| <!-- <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${lib.product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${lib.kernel.product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> |
| <java jar="${p2.launcher.jar}" fork="true" taskname="p2product" failonerror="true" maxmemory="256m"> |
| <arg line="-application org.eclipse.equinox.p2.publisher.ProductPublisher"/> |
| <arg line="-metadataRepository ${p2.repo.url}"/> |
| <arg line="-artifactRepository ${p2.repo.url}"/> |
| <arg line="-productFile ${repository.ext.product.file}"/> |
| <arg line="-append"/> |
| <arg line="-publishArtifacts"/> |
| <arg line="-flavor tooling"/> |
| <arg line="-configs all"/> |
| </java> --> |
| <delete dir="${p2.publishing.dir}" excludes="p2agent.zip" includeemptydirs="true" quiet="true"/> |
| </target> |
| |
| |
| </project> |