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

EGF Build Portfolio

Portfolio Name

Build Portfolio

Objective and scope

The objective of the Build Portfolio is to edit a build chain and next generate all the associated files for a release engineering target platform in order to manage and control a build chain.

The purpose is not to have an exhaustive, and then complex, build description. The build description must be simple with the possibility to describe large build chains.

The portfolio targets first Hudson and Buckminster.

Rationale

MDA principle

In OMG's MDA terms, the edited model represents the PIM and the build chain against a build target platform represents the PSM.

The PIM-to-PSM transformation is realized by a generation ensured by EGF. During this generation 1) the build model is transformed to be optimized, 2) the transformed model is checked, 3) files for the target platform are generated.

Metamodel

The build metamodel is a build core (see Figure 1) metamodel extended by build extension metamodels (see Figures 2 and 3). An extension metamodel enables to address a specific build concern.

EGFBuildPortfolio BuildCore.PNG

Figure 1. Build core metamodel


EGFBuildPortfolio Steps.PNG

Figure 2. Extension metamodel - Step metamodel - List of steps


EGFBuildPortfolio BuildStep.PNG

Figure 3. Extension metamodel Step metamodel - Build step focus

Concepts

Name Description
EgfBuildJob.gif Job List of steps
EgfBuildSVN.gif SCM Configuration Type of SCM locations
EgfBuildSVNLocation.gif SCM Location SCM locations (e.g., svn url)
EgfBuildBuildStep.gif Build Step Materializes and builds a workspace
EgfBuildSCMBuildLocation.gifEgfBuildUpdateSiteBuildLocation.gif Dependencies Sources and dependencies locations
EgfBuildFeature.gif EgfBuildPlugin.gif Components Features and plugins to find and build
EgfBuildTestStep.gif Junit Step
Launches a Junit launch configuration
EgfBuildPublishStep.gif Publish Step
Generates P2 site and dropins
EgfBuildEgfStep.gif EGF Step
Launches an EGF activity
EgfBuildAggregateStep.gif Aggregation Step
Aggregates several P2 sites and dropins
EgfBuildAntStep.gif Ant Step
Launches a custom ant target
EgfBuildJavadocStep.gif Javadoc Step
Generated Javadoc from sources

Process

[TBD]

Practice

Example

Download the EGF examples and import the org.eclipse.egf.portfolio.eclipse.build.examples plugin. The model is located in the model folder and the factory in the egf folder.

Use Case

The EGF build chain is built with the EGF build portfolio itself.

The model of the EGF build chain for Indigo is available here

The EGF build chain for Indigo, generation result of the EGF portfolio, is available here

References

A video is available here

Copyright © Eclipse Foundation, Inc. All Rights Reserved.