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.
XSLT Project/Releng/AthenaBuild
Contents
Prerequests
XSL Specific
One point of continuous integration is that a build should be simple to setup and can be run by anybody, anytime, anywhere. The Athena component within the Dash project allows for a common build script to be used across projects. It leverages the power of PDE Build, but with a much simplier interface.
Current production versions of the XSL Tools component of the WTP Source Editing subproject use the WTP Build infrastructure. Unfortunately at the time of this writing, that build is only reproducible on the server in which it is running.
The sections that follow show how to setup an Athena Build for the wst.xsl component and files.
Setup
There are some differences between the way the current WTP Build works and Athena. There are minor changes that needed to occur for the existing Test Feature and Map files. To get a local build running follow these steps.
Map Files
WTP Source Editing stores it's Maps files in webtools.maps/releng.sourceediting in the /cvsroot/webtools repository at dev.eclipse.org. We have created the xsl-test.map file. This contains the location of the Eclipse Test Framework that will be needed by the build for running unit tests.
See: Getting Started FAQ - Tests
Build Properties Settings
The build.properties file controls most of the build process. The settings for a MAP based local build within eclipse are as follows:
## BEGIN PROJECT BUILD PROPERTIES ## # default settings for all this project's builds, for this branch; see also o.e.d.common.releng/build.properties for more overrideable defaults # To permit automatic downloads of non-EPL compatible code, set this to property to "I accept" thirdPartyDownloadLicenseAcceptance="I accept" # MUST BE SET # projectid=webtools.xsl zipPrefix=XSL incubation= version=1.1.0 buildType=N mainFeatureToBuildID=org.eclipse.wst.xsl.feature testFeatureToBuildID=org.eclipse.wst.xsl_tests.feature # MUST BE SET # JAVA50_HOME=/home/dcarver/jrockit-jdk1.6.0_03 JAVA14_HOME=/home/dcarver/jrockit-jdk1.6.0_03 JAVA_HOME=${JAVA50_HOME} dependencyURLs=http://mirror.cc.vt.edu/pub/eclipse/eclipse/downloads/drops/R-3.5-200906111540/com.ibm.icu.base-3.5.zip,http://eclipse.unixheads.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-linux-gtk.tar.gz,http://ftp.ussg.iu.edu/eclipse/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/emf-runtime-2.5.0.zip,http://ftp.ussg.iu.edu/eclipse/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/xsd-runtime-2.5.0.zip,ftp://ftp.ussg.iu.edu/pub/eclipse/tools/gef/downloads/drops/3.5.0/R200906221200/GEF-SDK-3.5.0.zip,http://ftp.ussg.iu.edu/eclipse/webtools/downloads/drops/R3.1/R-3.1-20090616035105/wtp-wst-R-3.1-20090616035105.zip,http://ftp.ussg.iu.edu/eclipse/tools/orbit/downloads/drops/R20090529135407/orbit-R20090529135407.zip #what steps should we do? default: build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup compilerArg=-enableJavadoc -encoding ISO-8859-1 flattenDependencies=true parallelCompilation=true generateFeatureVersionSuffix=true individualSourceBundles=true skipSign=true ################################################################################################################# #TODO: [269290] make javadokken work. #javadocEnabled=true #JAVADOC14_HOME=/opt/public/common/ibm-java2-ppc-50/bin # TODO: are these still required/used? #projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/tools projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/webtools projRelengPath=webtools.maps/releng.sourceediting basebuilderBranch=R35_M6 # TODO: not used yet # define regex patterns to use when automatically selecting zips from a directory or list file #dependencyRegexFilter=R3_4_maintenance:M200.*/eclipse-SDK-|R-.*200.*/eclipse-SDK- # TODO: not used yet # could be file://, http://, cvs path, or relative path? #mapLocation=maps/ # TODO: implement use of packager.map for defining deps? # TODO: could be relative, absolute (local), or http/ftp paths to archives when defining dependencyURLs above ## END PROJECT BUILD PROPERTIES ##
Testing Properties
In order for tests/junits to be run during a build, there needs to exist a testing.properties file.
#csv list of test plugins to run testPluginsToRun=org.eclipse.wst.xsl.tests #,org.eclipse.zest.tests # need an aggregate test suite first! #map name of test plugin to testsuite class to run org.eclipse.wst.xsl.tests.suite=org.eclipse.wst.xsl.tests.AllTestsSuite org.eclipse.wst.xsl.tests.ignoreExistingTestXml=true
Running the Build
The build when run will download all the necessary supporting files that are need.
You need a launch configuration file in order to run the build.
<xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType"> <booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> <stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> <listEntry value="/releng.sourceediting/build.xml"/> </listAttribute> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> <listEntry value="1"/> </listAttribute> <stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="${workspace_loc:/releng.sourceediting}/buildlog.latest.txt"/> <listAttribute key="org.eclipse.debug.ui.favoriteGroups"> <listEntry value="org.eclipse.ui.externaltools.launchGroup"/> </listAttribute> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="releng.sourceediting"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_HIDE_INTERNAL_TARGETS" value="true"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${projects:org.eclipse.dash.common.releng,releng.sourceediting}"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/releng.sourceediting/build.xml}"/> <stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/> </launchConfiguration>
Use this launch configuration when running.