Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Automated Builds"

(Eclipse Auto-build project)
(Eclipse Auto-build project)
Line 8: Line 8:
 
# Add the CVS repository location where new component stored to the resourceLocation.xml file in the org.eclipse.higgins.auto project.
 
# Add the CVS repository location where new component stored to the resourceLocation.xml file in the org.eclipse.higgins.auto project.
  
See also [[How autobuild works]]
+
See [[How autobuild works]]
  
 
== General Server Information ==
 
== General Server Information ==

Revision as of 16:58, 15 October 2007

Eclipse Auto-build project

The build scripts located in the org.eclipse.higgins.auto project (commiters.psf anonymous.psf) perform automated builds of Higgins Components on the Eclipse build server (build.eclipse.org).

In order to add new component to the list of the components being built automatically every night, it is necessary to perform these tasks:

  1. Create dependencies.xml file in the root folder of each new project.
  2. Add description of the new component to runtime/project.xml file in the org.eclipse.higgins.auto project.
  3. Add the CVS repository location where new component stored to the resourceLocation.xml file in the org.eclipse.higgins.auto project.

See How autobuild works

General Server Information

Nightly builds of Higgins Components are performed on Eclipse build server.

Connection Type  :ssh:
Host build.eclipse.org
Build Path /shared/technology/higgins


General CVS Information

Connection Type Committers  :ext:
Anonymous access  :pserver:
Host dev.eclipse.org
Repository Path /cvsroot/technology


Location of the build scripts

Project Module Location Eclipse PSF ViewCVS
Automated Build Scripts org.eclipse.higgins/builds/org.eclipse.higgins.auto anonymous viewcvs
committer


dependencies.xml

dependencies.xml provides the build process with information on required projects and/or libraries.

Build scripts use dependencies.xml file with the structure below as generated by Eclipse IDE.

<?xml version="1.0" encoding="UTF-8"?>
<dependencies id="org.eclipse.higgins.icard.provider.cardspace.common">
	<!-- list of projects that are required -->
    <higginsProjects>
        <project id="org.eclipse.higgins.registry"/>
        <project id="org.eclipse.higgins.icard"/>
    </higginsProjects>
	<!-- libs that should be downloaded to the project. can be multiple for different locations -->
    <remoteLibs location="lib">
        <library id="commons-logging-1.1.jar"/>
        <library id="serializer.jar"/>
        <library id="xalan.jar"/>
        <library id="xercesImpl.jar"/>
        <library id="xmlsec-1.4.0.jar"/>
    </remoteLibs>
</dependencies>


higgin2ant

dependencies.xml can be automatically generated by using the higgin2ant plugin.

Project Module Location Eclipse PSF ViewCVS
higgins2ant org.eclipse.higgins/builds/higgins2ant anonymous viewcvs
committer

To install, copy higgins2ant/build/lib/higgins2ant_0.8.0.jar to eclipse_home/plugins and restart eclipse. Generating the dependencies file is very easy. Select (from menu) Export -> (General) Higgins dependency XML files -> check projects (for which you wish to create the dependencies file and verify that name of dependencies XML document is dependencies.xml) -> finish.

Description of a component in the runtime/project.xml file.

Description of a component points to which targets to run from the component’s build file and a location where build results will be placed for downloads. Also this file contains mail lists for notification capability on success & fail.

Below is an example of currently used description of a component .

<?xml version="1.0" encoding="UTF-8"?>
<buildProject>
	<!-- path from webHome to plase build -->
	<pathFromWebHome>hbx</pathFromWebHome>
	<!-- path from webHome to place updates (optional) update don't happen if not exists-->
	<updatePath>hbx/update</updatePath>
	<!-- prevent source zip (optional) ignored if contains false -->
	<noSource></noSource>
	<!-- prevent publish, don't creates index.html (optional) ignored if contains false -->
	<noPublish />
	<!-- comma-separated list of recipients. Sends to notify of success component build. (optional) -->
	<successMailList>pkimlach@aquasoft.dp.ua</successMailList>
	<!-- comma-separated list of recipients. Sends to notify of component build target fail. (optional) -->
	<failMailList>pkimlach@aquasoft.dp.ua</failMailList>
	<!-- targets to run --> 
	<targetToRun>xpi</targetToRun>
	<targetToRun>jar</targetToRun>
</buildProject>


“global repository” of required resources

File resourceLocation.xml contains information about where to get the component. Structure of this file is very simple and is shown below:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
	<repositories>
                <!-- project identifier-->
		<project id="org.eclipse.higgins.hbx">
	                <!-- CVS version tag -->
        		<version>HEAD</version>
		        <!-- repository identification string -->
		        <repositoryLocation>
	        		:pserver:anonymous@dev.eclipse.org:/cvsroot/technology
          		</repositoryLocation>
        		<!-- password -->
	        	<password></password>
          		<!-- path from CVS root to the project location -->
          	     	<path>org.eclipse.higgins/app/firefox/bx/XPCom</path>
		</project>
	</repositories>
	<!-- libs that can necessary to build component -->
	<remoteLibs>
		<!-- lib identifier -->	
		<lib id="commons-logging-1.1.jar">
			<!-- URL where library is available -->
			<url>
				http://apache.net.ua/commons/logging/binaries/commons-logging-1.1.zip
			</url>
		</lib>
		<!-- lib can be available as single *.jar file or stored in archive package (*.zip, *.gz, *.bz) and will be find automatically -->	
		<lib id="arq.jar">
			<url>
				http://shangrila.parityinc.net:8888/projects_deps/arq.jar
			</url>
		</lib>
	</remoteLibs>
</resources>

Add new component to auto projects.xml only in the presence of information about component and dependencies repositories and location of all required libs (for dependencies as well).


Helper targets

Helper target calls after execution of target from projects build.xml file to ${finishDir}. Helper target can contain some transformation (for example: zip task). In current version of auto builder implemented helper targets for {plugin, jar, javadoc, xpi} targets. To add possibility of new target execution need add new target with name «on_<newTargetToRunName>» witch will move results of newTargetToRunName execution to ${finishDir}with ziping or some other transformation (if necessary).

See Also

  • The "Nightly Build" column of each Component's table (see Components) has a link to a page containing the automated build output

Back to the top