You'll find below the ant targets that we use in our [http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/org.eclipse.releng.eclipsebuilder/buildAll.xml?rev=HEAD&content-type=text/xml buildAll.xml] script to complete the signing portion of the build. Please note

+

You'll find below the latest copy of the ant targets that we use in our [http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/org.eclipse.releng.eclipsebuilder/buildAll.xml?rev=HEAD&content-type=text/xml buildAll.xml] script to complete the signing portion of the build. Please note

<li>During our build, we build a build-time feature that results in file called eclipse-master-${buildId}.zip. This file includes all the plugins and features that are used in the build, excluding test plugins. This file is used later on by pde build's packaging process to assemble the all the downloads available on the platform download page. By taking this approach, we ensure that each jar is only sent to the signing process once. That being said, the entire signing process still takes about 45 minutes to complete given the size of our build.</li>

<li>During our build, we build a build-time feature that results in file called eclipse-master-${buildId}.zip. This file includes all the plugins and features that are used in the build, excluding test plugins. This file is used later on by pde build's packaging process to assemble the all the downloads available on the platform download page. By taking this approach, we ensure that each jar is only sent to the signing process once. That being said, the entire signing process still takes about 45 minutes to complete given the size of our build.</li>

<li>We scp the zips to and from the dev.eclipse.org server, instead of build.eclipse.org. The dev.eclipse.org server has QoS rules associated with it, and therefore the copy takes less time.</li>

<li>We scp the zips to and from the dev.eclipse.org server, instead of build.eclipse.org. The dev.eclipse.org server has QoS rules associated with it, and therefore the copy takes less time.</li>

Revision as of 14:40, 19 December 2006

Signing platform builds

You'll find below the latest copy of the ant targets that we use in our buildAll.xml script to complete the signing portion of the build. Please note

During our build, we build a build-time feature that results in file called eclipse-master-${buildId}.zip. This file includes all the plugins and features that are used in the build, excluding test plugins. This file is used later on by pde build's packaging process to assemble the all the downloads available on the platform download page. By taking this approach, we ensure that each jar is only sent to the signing process once. That being said, the entire signing process still takes about 45 minutes to complete given the size of our build.

We scp the zips to and from the dev.eclipse.org server, instead of build.eclipse.org. The dev.eclipse.org server has QoS rules associated with it, and therefore the copy takes less time.

We add a pack.properties file to the eclipse-master-${buildId}.zip to overcome the the bugs described in this
message For more information on including jar processor options in your build, refer to this document prepared by the core team. This overall jar signing document is also a good reference.

The process we use can be summarized as follows:

Use scp to copy the eclipse-master-${buildId}.zip to the eclipse.org signing staging area using pserver.

Invoke the signing script.

Poll the server for the signed file in the output directory. Poll from the same server that you will be copying from. I initially polled build.eclipse.org but copied the file from dev.eclipse.org to take advantage of its QoS riles. This caused problems because of the lag in nfs synchronization across the nodes. So I changed it to poll dev.eclipse.org and copy from dev.eclipse.org.

When available, scp the signed eclipse-master-${buildId}.zip back to the server.

Delete the build specific signing files from build.eclipse.org.

Invoke the packager against the eclipse-master-${buildId}.zip to create the the drops available for download, and continue with the remainder of the build.

After signing the master feature, we call the jar processor again to create the pack.gz files. This step could be completed on the build.eclipse.org server. However, this would mean that the eclipse-master-${buildId}.zip would be much larger file to copy back to our build machine and subsequently take longer. Consequently, we decided to run this task on our local build machine.