Child pages
  • Continuum Lifecycle
Skip to end of metadata
Go to start of metadata

The goal is to refactoring continuum-core to remove :

  • use of PlexusAction and the context Map which is a real nigthmare to debug ( (minus) ) and/or add improvment.
  • easily add news feature (the plugin feature !)

Using a lifecycle "a la" maven

Why ?

  • easily adding new phases (something to do in the start/middle/end of the build).
  • attach plugins (a phase has a default plugin which is not possible to override)

Phases

Checkout Sources

A particular one checkout-sources ("a la" clean). possible to add plugins here ? (with a previous phase called prepare-checkout-sources ?)

CheckoutSourcesPlugin.java
ScmInformation.java
ProjectInformation.java

Build phases

  • update-sources
  • build-project
  • deploy-artifacts
  • build-reports
  • send-notifications
  • end-build ( ? )

A common interface for all phases or one for each phase (question)

One for all

ContinuumBuildPlugin.java
ContinuumBuildContext.java

One interface for each phases

update-sources

ContinuumUpdateSourcesPlugin.java

Note the default one will instantiate scmResult for the next ones

build-project.

ContinuumUpdateSourcesPlugin.java

build-reports.

ContinuumUpdateSourcesPlugin.java

This phase will add some BuildReport bean (to define) in BuildResult as a List which will be available for next phases.

send-notifications.

ContinuumUpdateSourcesPlugin.java

end-build.

Usefull ?

ContinuumUpdateSourcesPlugin.java

Implementations details.

Common

Each phase will have a default implementation which cannot be override.
Attaching plugins to project build will be done at the build definition level. (easy to build some templates).
Each plugin will have an archetype.

  • No labels