blob: 5992b4b2ba8e878f75a36d8153d1d81e1e9cb14c [file] [log] [blame]
<project name="pack-and-sign" default="pack-and-sign" basedir=".">
<dirname property="scriptdir" file="${ant.file.pack-and-sign}"/>
<property name="pack200" value="${java.home}/bin"/>
<property name="filter" value=""/>
<property name="mirrorsUrl" value=""/>
<target name="pack-and-sign">
<fail unless="localRepository">Required property localRepository not set</fail>
<fail unless="projectDir">Required property projectDir not set</fail>
<fail unless="repositoryName">Required property repositoryName not set</fail>
<fail unless="signDir">Required property signDir not set</fail>
<fail unless="dist">Required property dist not set</fail>
<echo>Running on ${os.name} ${os.version} (${os.arch}) / ${ant.version} / ${java.vendor} ${java.vm.name} ${java.version}</echo>
<condition property="_sign.skip" value="true"><equals arg1="${skipSign}" arg2="true"/></condition>
<condition property="_pack.skip" value="true"><equals arg1="${skipPack}" arg2="true"/></condition>
<condition property="_promote.skip" value="true"><equals arg1="${skipPromote}" arg2="true"/></condition>
<!-- sign -->
<antcall target="sign"/>
<!-- condition jars -->
<delete dir="${projectDir}/conditioner"/>
<copy todir="${projectDir}/conditioner">
<fileset dir="${projectDir}/site">
<include name="**/*${filter}*.jar"/>
</fileset>
</copy>
<antcall target="pack">
<param name="args" value="-processAll -repack"/>
<param name="site" value="${projectDir}/conditioner"/>
</antcall>
<copy todir="${projectDir}/site">
<fileset dir="${projectDir}/conditioner">
<include name="**/*${filter}*.jar"/>
</fileset>
</copy>
<!-- create site archive -->
<antcall target="publish"/>
<zip file="${projectDir}/site-archive.zip">
<fileset dir="${projectDir}/site">
<include name="**/*"/>
</fileset>
</zip>
<!-- pack200 -->
<antcall target="pack">
<param name="args" value="-pack"/>
<param name="site" value="${projectDir}/site"/>
</antcall>
<!-- does not work
<antcall target="add-mirrors-url"/>
-->
<antcall target="publish"/>
<!-- create packed site archive -->
<zip file="${projectDir}/site-packed.zip">
<fileset dir="${projectDir}/site">
<include name="**/*"/>
</fileset>
</zip>
<!-- promote -->
<antcall target="promote"/>
</target>
<target name="sign" unless="_sign.skip">
<chmod perm="755" file="${scriptdir}/sign-and-wait.sh"/>
<exec executable="${scriptdir}/sign-and-wait.sh" failonerror="true">
<arg value="${projectDir}/site"/>
<arg value="${signDir}"/>
<arg value="${filter}"/>
</exec>
</target>
<target name="promote" unless="_promote.skip">
<chmod perm="755" file="${scriptdir}/promote.sh"/>
<chmod perm="755" file="${scriptdir}/update-composite.sh"/>
<exec executable="${scriptdir}/promote.sh" dir="${scriptdir}" failonerror="true">
<arg value="${dist}"/>
<arg value="${version}"/>
<arg value="${qualifier}"/>
<arg value="${projectDir}"/>
<arg value="${archiveDir}"/>
<arg value="${siteDir}"/>
</exec>
</target>
<target name="pack" unless="_pack.skip">
<delete file="${site}/content.jar" />
<delete file="${site}/artifacts.jar" />
<path id="jarprocessor.classpath">
<fileset dir="${localRepository}/org/eclipse/tycho/tycho-bundles-external">
<include name="*/eclipse/plugins/org.eclipse.equinox.p2.jarprocessor_*.jar" />
</fileset>
</path>
<echo>Using ${pack200} for packing</echo>
<!-- pack200 -->
<java jvm="${java.home}/bin/java" classname="org.eclipse.equinox.internal.p2.jarprocessor.Main"
fork="true" classpathref="jarprocessor.classpath" failonerror="true" maxmemory="512m"
dir="${projectDir}/site">
<jvmarg line="-Dorg.eclipse.update.jarprocessor.pack200=${pack200}" />
<arg line="-verbose ${args}" />
<arg line="-outputDir ${site} ${site}" />
</java>
<!-- remove corrupted jars -->
<!--
<delete>
<fileset dir="${projectDir}/site">
<include name="plugins/com.google.gwt*.pack.gz"/>
</fileset>
</delete>
-->
</target>
<target name="add-mirrors-url" unless="_promote.skip">
<replace file="${projectDir}/../site.xml">
<replacetoken><![CDATA[<site pack200="true">]]></replacetoken>
<replacevalue><![CDATA[<site pack200="true" mirrorsURL="${mirrorsUrl}">]]></replacevalue>
</replace>
</target>
<target name="publish">
<delete file="${projectDir}/site/content.jar" />
<delete file="${projectDir}/site/artifacts.jar" />
<path id="eclipse.classpath">
<fileset dir="${localRepository}/org/eclipse/tycho/tycho-bundles-external">
<include name="*/eclipse/plugins/org.eclipse.equinox.launcher_*.jar" />
</fileset>
</path>
<!-- generate metadata -->
<java jvm="${java.home}/bin/java" classname="org.eclipse.equinox.launcher.Main" fork="true"
classpathref="eclipse.classpath" failonerror="true" maxmemory="256m"
dir="${projectDir}/site">
<arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher" />
<arg line="-source ${projectDir}/site" />
<arg line="-metadataRepository file://${projectDir}/site" />
<arg line="-artifactRepository file://${projectDir}/site" />
<arg line="-metadataRepositoryName '${repositoryName}'" />
<arg line="-artifactRepositoryName '${repositoryName}'" />
<arg line="-compress -reusePackedFiles -reusePack200Files -publishArtifacts" />
</java>
<!-- publish categories -->
<java jvm="${java.home}/bin/java" classname="org.eclipse.equinox.launcher.Main" fork="true"
classpathref="eclipse.classpath" failonerror="true" maxmemory="256m"
dir="${projectDir}/site">
<arg line="-application org.eclipse.equinox.p2.publisher.CategoryPublisher" />
<arg line="-metadataRepository file://${projectDir}/site" />
<arg line="-categoryDefinition file://${projectDir}/../site.xml" />
<arg line="-compress -categoryQualifier" />
</java>
</target>
</project>