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"

(Higgins Auto-build project)
 
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{#eclipseproject:technology.higgins}}
+
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
 
[[Image:Higgins_logo_76Wx100H.jpg|right]]
 
[[Image:Higgins_logo_76Wx100H.jpg|right]]
 
== Higgins Auto-build project ==
 
== Higgins Auto-build project ==
The build scripts located in the '''org.eclipse.higgins.auto''' project ([http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto/committers.psf?root=Technology_Project&view=co commiters.psf] [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto/anonymous.psf?root=Technology_Project&view=co anonymous.psf]) perform automated builds of Higgins [[Components]] on the Eclipse build server (build.eclipse.org).
+
The build scripts located in the '''org.eclipse.higgins.auto''' project ([http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto/project.psf?root=Technology_HIGGINS&view=co project.psf] [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto/projectWithDeps.psf?root=Technology_HIGGINS&view=co projectWithDeps.psf]) perform automated builds of Higgins [[Components]] on the Eclipse build server (build.eclipse.org).
  
 
To add a new component to the list of the those being built automatically every night do the following:
 
To add a new component to the list of the those being built automatically every night do the following:
  
# Create build.xml, buildaux.xml and dependencies.xml files in the root folder of each new project using higgins2ant plugin. The same steps should be repeated for all the projects depended on the new project that you are adding to autobuild.
+
# Create '''build.xml''' and '''dependencies.xml''' files in the root folder of each new project using [[Higgins2Ant]] plugin. The same steps should be repeated for all the projects depended on the new project that you are adding to autobuild.
# Add description of the new component to runtime/projects.xml file in the org.eclipse.higgins.auto.resources project.
+
# Add description of the new component to '''projects.xml''' file in the '''org.eclipse.higgins.auto.resources''' project.
# Add the CVS repository location of the new component to the resourceLocation.xml file in the org.eclipse.higgins.auto.resources project. The same step should be repeated for all the projects dependent on the new component that you are adding. The file resourceLocation.xml should also contain the lib id and url of all 3rd party libs that the new component and it's sub-components depend on.
+
# Add the SVN repository location of the new component to the '''resourceLocation.xml''' file in the '''org.eclipse.higgins.auto.resources''' project. The same step should be repeated for all the projects dependent on the new component that you are adding. The file '''resourceLocation.xml''' should also contain the lib id and url of all 3rd party libs that the new component and it's sub-components depend on.
 +
 
 +
See [http://www.eclipse.org/higgins/downloads.php?loc=downloads Higgins downloads]
 +
 
 +
See [[Starting a Higgins Build]]
 +
 
 +
See [[Higgins Committers and Contributors#Processes]]
  
 
See [[How To Test Autobuild On Local Machine]]
 
See [[How To Test Autobuild On Local Machine]]
Line 29: Line 35:
  
  
== General CVS Information ==
+
== General SVN Information ==
 
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0"   
 
{| class="wikitable" style="text-align:left; border="1" cellpadding="5" cellspacing="0"   
 
! rowspan="2" border="1" align="left" valign="top" | Connection Type  
 
! rowspan="2" border="1" align="left" valign="top" | Connection Type  
 
| Committers  
 
| Committers  
| :ext:
+
| https:// or svn+ssh://
 
|-
 
|-
 
| Anonymous access  
 
| Anonymous access  
| :pserver:
+
| http://
 
|-
 
|-
 
! colspan="2" border="1" align="left" valign="top" | Host  
 
! colspan="2" border="1" align="left" valign="top" | Host  
Line 42: Line 48:
 
|-
 
|-
 
! colspan="2" border="1" align="left" valign="top" | Repository Path  
 
! colspan="2" border="1" align="left" valign="top" | Repository Path  
| /cvsroot/technology
+
| /svnroot/technology/org.eclipse.higgins
 
|-
 
|-
 
|}   
 
|}   
Line 54: Line 60:
 
! border="1" align="left" valign="top" | Module Location
 
! border="1" align="left" valign="top" | Module Location
 
! border="1" align="left" valign="top" | Eclipse PSF
 
! border="1" align="left" valign="top" | Eclipse PSF
! border="1" align="left" valign="top" | ViewCVS
+
! border="1" align="left" valign="top" | ViewSVN
 
|-
 
|-
 
|rowspan="2" |Automated Build Scripts
 
|rowspan="2" |Automated Build Scripts
|rowspan="2" |org.eclipse.higgins/builds/org.eclipse.higgins.auto
+
|rowspan="2" |/trunk/builds/org.eclipse.higgins.auto
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto/anonymous.psf?root=Technology_Project&view=co anonymous]  
+
| [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto/project.psf?root=Technology_HIGGINS&view=co project.psf]  
|rowspan="2" | [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto/?cvsroot=Technology_Project viewcvs]
+
|rowspan="2" | [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto/?root=Technology_HIGGINS viewsvn]
 
|-
 
|-
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto/committers.psf?root=Technology_Project&view=co committer]
+
| [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto/projectWithDeps.psf?root=Technology_HIGGINS&view=co projectWithDeps.psf]
 
|-
 
|-
 
|}
 
|}
Line 67: Line 73:
 
=== higgins2ant plugin ===
 
=== higgins2ant plugin ===
  
The dependencies.xml file can be automatically generated by using the [[Higgins2Ant]] plugin.
+
The build files and dependencies.xml files for build projects can be generated by using the [[Higgins2Ant]] 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]
+
|-
+
|}
+
 
+
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.
+
  
 
=== Location of the configuration xml files ===
 
=== Location of the configuration xml files ===
Line 94: Line 82:
 
! border="1" align="left" valign="top" | Module Location
 
! border="1" align="left" valign="top" | Module Location
 
! border="1" align="left" valign="top" | Eclipse PSF
 
! border="1" align="left" valign="top" | Eclipse PSF
! border="1" align="left" valign="top" | ViewCVS
+
! border="1" align="left" valign="top" | ViewSVN
 
|-
 
|-
 
|rowspan="2" |Automated Build Configuration
 
|rowspan="2" |Automated Build Configuration
|rowspan="2" |org.eclipse.higgins/builds/org.eclipse.higgins.auto.resources
+
|rowspan="2" |trunk/builds/org.eclipse.higgins.auto.resources
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto.resources/anonymous.psf?root=Technology_Project&view=co anonymous]  
+
| [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto.resources/project.psf?root=Technology_HIGGINS&view=co project.psf]  
|rowspan="2" | [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto.resources/?cvsroot=Technology_Project viewcvs]
+
|rowspan="2" | [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto.resources/?root=Technology_HIGGINS viewsvn]
 
|-
 
|-
| [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.higgins/builds/org.eclipse.higgins.auto.resources/committers.psf?root=Technology_Project&view=co committer]
+
| [http://dev.eclipse.org/viewsvn/index.cgi/trunk/builds/org.eclipse.higgins.auto.resources/projectWithDeps.psf?root=Technology_HIGGINS&view=co projectWithDeps.psf]
 
|-
 
|-
 
|}
 
|}
Line 129: Line 117:
 
</pre>
 
</pre>
  
== Description of a component in the runtime/project.xml file ==
+
== Description of a component in the project.xml file ==
  
  
Line 149: Line 137:
 
<noPublish />
 
<noPublish />
 
<!-- comma-separated list of recipients. Sends to notify of success component build. (optional) -->
 
<!-- comma-separated list of recipients. Sends to notify of success component build. (optional) -->
<successMailList>pkimlach@aquasoft.dp.ua</successMailList>
+
<successMailList>pkimlach@aquasoft.dp.ua,vkokhan@aquasoft.dp.ua</successMailList>
 
<!-- comma-separated list of recipients. Sends to notify of component build target fail. (optional) -->
 
<!-- comma-separated list of recipients. Sends to notify of component build target fail. (optional) -->
 
<failMailList>pkimlach@aquasoft.dp.ua</failMailList>
 
<failMailList>pkimlach@aquasoft.dp.ua</failMailList>
Line 167: Line 155:
 
                 <!-- project identifier-->
 
                 <!-- project identifier-->
 
<project id="org.eclipse.higgins.hbx">
 
<project id="org.eclipse.higgins.hbx">
                <!-- CVS version tag -->
+
                <!-- SVN revision (any svn supported format) -->
 
         <version>HEAD</version>
 
         <version>HEAD</version>
 
        <!-- repository identification string -->
 
        <!-- repository identification string -->
 
        <repositoryLocation>
 
        <repositoryLocation>
        :pserver:anonymous@dev.eclipse.org:/cvsroot/technology
+
        http://dev.eclipse.org/svnroot/technology/org.eclipse.higgins
 
           </repositoryLocation>
 
           </repositoryLocation>
 
         <!-- password -->
 
         <!-- password -->
 
        <password></password>
 
        <password></password>
           <!-- path from CVS root to the project location -->
+
           <!-- path from SVN root to the project location -->
               <path>org.eclipse.higgins/app/firefox/bx/XPCom</path>
+
               <path>trunk/builds/org.eclipse.higgins.auto</path>
 
</project>
 
</project>
 
</repositories>
 
</repositories>
Line 217: Line 205:
 
* The "Downloads" column of each Component's table (see [[Components]]) has a link to a page containing the automated build output
 
* The "Downloads" column of each Component's table (see [[Components]]) has a link to a page containing the automated build output
  
[[Category:Higgins - Building]]
+
[[Category:Higgins 1.x - Building]]
[[Category:Higgins Components]]
+

Latest revision as of 14:55, 25 April 2011

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Higgins logo 76Wx100H.jpg

Higgins Auto-build project

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

To add a new component to the list of the those being built automatically every night do the following:

  1. Create build.xml and dependencies.xml files in the root folder of each new project using Higgins2Ant plugin. The same steps should be repeated for all the projects depended on the new project that you are adding to autobuild.
  2. Add description of the new component to projects.xml file in the org.eclipse.higgins.auto.resources project.
  3. Add the SVN repository location of the new component to the resourceLocation.xml file in the org.eclipse.higgins.auto.resources project. The same step should be repeated for all the projects dependent on the new component that you are adding. The file resourceLocation.xml should also contain the lib id and url of all 3rd party libs that the new component and it's sub-components depend on.

See Higgins downloads

See Starting a Higgins Build

See Higgins Committers and Contributors#Processes

See How To Test Autobuild On Local Machine

See How Autobuild Gets Dependencies

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 SVN Information

Connection Type Committers https:// or svn+ssh://
Anonymous access http://
Host dev.eclipse.org
Repository Path /svnroot/technology/org.eclipse.higgins


Location of the build scripts

Project Module Location Eclipse PSF ViewSVN
Automated Build Scripts /trunk/builds/org.eclipse.higgins.auto project.psf viewsvn
projectWithDeps.psf

higgins2ant plugin

The build files and dependencies.xml files for build projects can be generated by using the Higgins2Ant plugin.

Location of the configuration xml files

Project Module Location Eclipse PSF ViewSVN
Automated Build Configuration trunk/builds/org.eclipse.higgins.auto.resources project.psf viewsvn
projectWithDeps.psf

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>

Description of a component in the 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,vkokhan@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

The file resourceLocation.xml contains information about where to get the component. The 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">
	                <!-- SVN revision (any svn supported format) -->
        		<version>HEAD</version>
		        <!-- repository identification string -->
		        <repositoryLocation>
	        		http://dev.eclipse.org/svnroot/technology/org.eclipse.higgins
          		</repositoryLocation>
        		<!-- password -->
	        	<password></password>
          		<!-- path from SVN root to the project location -->
          	     	<path>trunk/builds/org.eclipse.higgins.auto</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>
		<!-- these parameters are used to generate project's dependency page.-->
			<libraryHomePage name="Home Page Name">
				<url>http://libraryHomePage.url</url>
			</libraryHomePage>
			<comment>comment</comment>
			<version>version</version>
			<license name="Library license name">
				<url>http://license.url</url>
			</license>
			<eclipseApproved>[yes|no|some text]</eclipseApproved>
		</lib>
		<!-- lib can be available as single *.jar file or stored in archive package (*.zip, *.tgz, *.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 the possibility of a new target execution you need to add a new target with the name «on_<newTargetToRunName>» which will move results of newTargetToRunName execution to ${finishDir}with ziping or some other transformation (if necessary).

See Also

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

Back to the top