You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ba...@apache.org on 2015/04/24 18:42:26 UTC
svn commit: r1675895 -
/continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/index.apt
Author: batkinson
Date: Fri Apr 24 16:42:26 2015
New Revision: 1675895
URL: http://svn.apache.org/r1675895
Log:
[CONTINUUM-2434] Update docs to clarify why forced builds may not be queued
Modified:
continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/index.apt
Modified: continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/index.apt
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/index.apt?rev=1675895&r1=1675894&r2=1675895&view=diff
==============================================================================
--- continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/index.apt (original)
+++ continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/index.apt Fri Apr 24 16:42:26 2015
@@ -25,7 +25,26 @@
Building Projects
- For Ant and Maven builds the following system properties will be added via -D command line:
+ Continuum's build system is centered around the notion of a project containing one or more build definitions
+ (or build commands). Once defined, project builds can be triggered two ways:
+
+ [[1]] {{{./schedule_build.html} Scheduled Builds}}
+
+ [[2]] {{{./forced_build.html} Forced Builds}}
+
+ []
+
+ Scheduled builds are triggered as a result of a configured schedule and are only actually attempted when there are
+ relevant changes since the last build. Alternatively, forced builds are triggered as a result of user interaction
+ and are always attempted regardless of changes in the project.
+
+ <Note that when using distributed builds, project checkout or update can take longer due to an additional SCM
+ changelog command that must be run in order to determine whether projects should build or not.>
+
+* Build Properties
+
+ To give projects an awareness of their build status, Continuum passes some project build information when running
+ commands. For Ant and Maven builds the following system properties will be added via -D command line:
* <<<continuum.project.group.name>>>
@@ -43,29 +62,35 @@ Building Projects
[]
- When building projects, the build order is determined by the inter-dependency of the projects.
- This would mean that the dependencies of a project are built first.
-
- In cases when a project group can build projects in parallel build queues but one of those projects depend
- on another project, the inter-dependent projects will build in the same build queue.
+* Cancelling builds
- Projects can be built in two ways:
+ If a build has been started, you can cancel it before it completes. See
+ {{{./cancelling_build.html} Cancelling Builds}} for more information.
- [[1]] {{{./schedule_build.html} Scheduled Builds}}
+* Understanding The Build Pipeline
- [[2]] {{{./forced_build.html} Forced Builds}}
+ Continuum's build pipeline currently consists of three task queues: <checkout>, <prepare> and <build>.
- []
+ [Checkout] Checks out the working copy for initial working copy creation
- Projects will have the <<in queue>> icon once the forced build or a scheduled build is triggered. This means that the project is either in the <<prepare build
- queue>> or in the <<build queue>>.
+ [Prepare] Updates or checks out a fresh working copy (depending on build configuration), detects changes and, if
+ appropriate, creates build tasks
-[../../images/inqueue.gif]
+ [Build] Executes build tasks corresponding to project build definitions
- Checkout or update of projects takes longer with distributed builds enabled because after an SCM checkout or SCM update, an SCM changelog follows to get the "latest
- update date" needed to determine whether projects should build or not.
-
-* Cancelling builds
+ []
- If a build has been started, you can cancel it before it completes. See
- {{{./cancelling_build.html} Cancelling Builds}} for more information.
+ When building projects, Continuum ensures tasks are queued in an order that ensures dependencies of a project are
+ built before the project itself. When a project group configured to use parallel build queues contains a project
+ with a dependency on another project, the inter-dependent projects are added to the same build queue.
+
+** Scheduling Restrictions
+
+ Build tasks modify the working copy during the course of their execution. Consequently, they must not execute
+ concurrently on a single working copy or it would potentially be corrupted. For this reason, Continuum currently
+ prevents manually queuing conflicting tasks, such as when a related project task is already queued or executing.
+
+ <This behavior is understood to be sub-optimal and largely a consequence of the current implementation of the
+ build pipeline. In the future, the implementation may change to support only a single multi-stage task that performs
+ the entire build sequence (checkout, prepare, build) for a working copy. By doing this, integrity can be guaranteed
+ by ensuring tasks requiring sequential execution are always added to the same queue.>