Skip to main content

Notice: This Wiki is now read only and edits are no longer 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"

Line 60: Line 60:
  
  
== '''Dependencies.xml''' file. ==
+
== '''dependencies.xml''' file. ==
  
 
The purpose of dependencies.xml file is to provide information on required projects and libraries.
 
The purpose of dependencies.xml file is to provide information on required projects and libraries.
  
Current build scripts uses dependencies.xml file with the structure below but it will be changed soon in order to simplify and allow to generate it from Eclipse IDE.
+
Build scripts uses dependencies.xml file with the structure below, generated by Eclipse IDE.
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<dependencies id="org.eclipse.higgins.icard.provider.cardspace.common">
+
<dependencies id="org.eclipse.higgins.icard.provider.cardspace.common">
<projects>
+
<!-- list of projects that are required -->
<project>
+
    <higginsProjects>
<!-- same as for build list file -->
+
        <project id="org.eclipse.higgins.registry"/>
<id>org.eclipse.higgins.icard</id>
+
        <project id="org.eclipse.higgins.icard"/>
<version>HEAD</version>
+
    </higginsProjects>
<repositoryLocation>
+
<!-- libs that should be downloaded to the project. can be multiple for different locations -->
:pserver:anonymous@dev.eclipse.org:/cvsroot/technology
+
    <remoteLibs location="lib">
</repositoryLocation>
+
        <library id="commons-logging-1.1.jar"/>
<password></password>
+
        <library id="serializer.jar"/>
<path>
+
        <library id="xalan.jar"/>
org.eclipse.higgins/plugins/org.eclipse.higgins.icard
+
        <library id="xercesImpl.jar"/>
</path>
+
        <library id="xmlsec-1.4.0.jar"/>
</project>
+
    </remoteLibs>
<project>
+
</dependencies>
<id>org.eclipse.higgins.registry</id>
+
<version>HEAD</version>
+
<repositoryLocation>
+
:pserver:anonymous@dev.eclipse.org:/cvsroot/technology
+
</repositoryLocation>
+
<password></password>
+
<path>
+
org.eclipse.higgins/plugins/org.eclipse.higgins.registry
+
</path>
+
</project>
+
</projects>
+
<remoteLibs>
+
<!-- libs that should be downloaded to the project -->
+
<libraries>
+
<!-- pace in project where *.jar or *.zip libs should be stored-->
+
<location>lib</location>
+
<!-- URL where library is available -->
+
<url>
+
http://shangrila.parityinc.net:8888/projects_deps/commons-logging-1.1.jar
+
</url>
+
<url>
+
http://shangrila.parityinc.net:8888/projects_deps/serializer.jar
+
</url>
+
</libraries>
+
<libraries>
+
<location>lib1</location>
+
<url>
+
http://shangrila.parityinc.net:8888/projects_deps/commons-logging-1.1.jar
+
</url>
+
</libraries>
+
</remoteLibs>
+
</dependencies>
+
 
</pre>
 
</pre>
  
 +
For successful component build dependencies.xml should be crated for all dependencies that has their own dependencies (projects or libs).
  
<big>'''Description of a component in the runtime/project.xml file.'''</big>
+
=== higgin2ant ===
  
 +
File dependencies.xml can be automatically generated by higgin2ant plugin.
  
 +
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0" 
 +
|-style="background:#d6dee9; color:black" 
 +
! border="1" align="left" valign="top" | Project
 +
! border="1" align="left" valign="top" | Module Location
 +
! border="1" align="left" valign="top" | Eclipse PSF
 +
! border="1" align="left" valign="top" | ViewCVS
 +
|-
 +
|rowspan="2" |higgins2ant
 +
|rowspan="2" |org.eclipse.higgins/builds/higgins2ant
 +
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/higgins2ant/anonymous.psf?root=Technology_Project&view=co anonymous]
 +
|rowspan="2" | [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/higgins2ant/?cvsroot=Technology_Project viewcvs]
 +
|-
 +
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/higgins2ant/committers.psf?root=Technology_Project&view=co committer]
 +
|-
 +
|}
  
Description of a component describes which targets to run from the component’s build file and a location where build results will be placed for downloads.
+
To install copy higgins2ant/build/lib/higgins2ant_0.8.0.jar to eclipse_home/plugins and restart eclipse.
 +
Generate dependensies file is very easy. Select (from menu) Export -> (General) Higgins dependency XML files -> check projects (for witch you want to create depenrenxies ашду and verify that name of dependencies XML document is depenrenxies.xml) -> finish.
  
Right now it also contains information on where to get the component but soon this information will be moved to some “global repository”.
+
 
 +
== 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 .
 
Below is an example of currently used description of a component .
  
 
<pre>
 
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
 
<buildProject>
 
<buildProject>
<!-- project identifier-->
 
<id>org.eclipse.higgins.hbx</id>
 
<!-- 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>
 
 
<!-- path from webHome to plase build -->
 
<!-- path from webHome to plase build -->
 
<pathFromWebHome>hbx</pathFromWebHome>
 
<pathFromWebHome>hbx</pathFromWebHome>
Line 149: Line 129:
 
<!-- prevent publish, don't creates index.html (optional) ignored if contains false -->
 
<!-- prevent publish, don't creates index.html (optional) ignored if contains false -->
 
<noPublish />
 
<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 -->  
 
<!-- targets to run -->  
 
<targetToRun>xpi</targetToRun>
 
<targetToRun>xpi</targetToRun>
Line 155: Line 139:
 
</pre>
 
</pre>
  
<big>'''Helper targets.'''</big>
+
 
 +
 
 +
== '''“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:
 +
<pre>
 +
<?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>
 +
</pre>
 +
 
 +
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.''' ==
  
  

Revision as of 07:26, 3 September 2007

Auto build project

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

Right now in order to add new component to the list of the components been build by automated builds it is necessary to perform two tasks:

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

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 file.

The purpose of dependencies.xml file is to provide information on required projects and libraries.

Build scripts uses dependencies.xml file with the structure below, 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>

For successful component build dependencies.xml should be crated for all dependencies that has their own dependencies (projects or libs).

higgin2ant

File dependencies.xml can be automatically generated by 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. Generate dependensies file is very easy. Select (from menu) Export -> (General) Higgins dependency XML files -> check projects (for witch you want to create depenrenxies ашду and verify that name of dependencies XML document is depenrenxies.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).

Information about Components for which automated nightly builds are available

Component Last Build
Higgins Browser Extension (HBX) last nightly build
Identity_Attribute_Service
A Identity_Attribute_Service_API (API) last nightly build
B IdAS_Common (IdAS Common) last nightly build
C IdAS_SPI (IdAS SPI) last nightly build
Context_Provider
A Jena_Context_Provider Jena2 last nightly build
I-Card_Interfaces I-Card_Registry
A I-Card_Interfaces last nightly build
B I-Card_Registry last nightly build
C CardSpace_I-Card_Provider_Core last nightly build
D IdAS-based_CardSpace_Managed_I-Card_Provider last nightly build
E XML-based_CardSpace_Managed_I-Card_Provider last nightly build
F CardSpace_Personal_I-Card_Provider last nightly build

This page should include a list of Components and the status of the nightly build script development. E.g. has the script been written or not, etc. n/a means "not applicable"

Back to the top