Working with Steps

Version 1 by Robin Shen
on Aug 18, 2010 12:44.


 
compared with
Current by Robin Shen
on Aug 18, 2010 14:45.


 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 4 changes. View first change.

 To set up build for your project, you'll need to [create a configuration|add configuration] first, and then define steps in it to tell QuickBuild how to build the project. Steps can be defined by selecting the configuration and switching to the _steps_ tab. The _steps_ tab display steps in two tabs: will be executed steps and all defined steps.
  Step is the key concept in QuickBuild. A build process is actually the execution of sequence of steps. Steps can be defined in step setting page of a configuration like below:
 !steps.png!
  
h2. Will be Executed steps
  Step setting page is composed of two parts: available steps and workflow. Available steps includes all steps defined in current configuration and inherited from ancestor configurations, while workflow defines which steps will be executed in current configuration and how they will be executed. Details of this page:
 # Click this icon to define a new step in current configuration. The newly defined step will not be executed in workflow unless you drag it into workflow (or edit relevant composite step in workflow to contain it).
 # Click this icon to define a new step and at the same time add the newly defined step as a child of current step.
 # Click these two icons to define new steps before or after current step.
 # Drag this to move an available step into workflow. The step can be dropped on an existing step to replace it, or can be dropped in blank area of a composite step to add as new child.
 # Drag this to another place to re-organize the workflow, or drag it into available steps to remove it from workflow.
 # This arrow indicates that the step is inherited from ancestor steps. Following this arrow will bring you to the configuration defined the step.
 # Click this icon will override definition of the step.
 # Dashed border means inherited step, while solid border means step defined in current configuration.
 # Click this icon to delete the step. This will not only remove the step from workflow, but also delete the step from available steps. If you only want to remove it from workflow, just drag it into available steps.
 # Hover mouse over the link to view step definition.
  
This gives a graphical view of which steps will be executed when you build the configuration. The build process always starts with master step. If the master step is not a composite step, it will be executed and the build process finishes; otherwise the master step will run contained child steps sequentially or concurrently based on its composition type. The child steps repeat this process recursively until a non-composite step or empty composite step is encountered. Below screen is a sample of _will be executed steps_ tab:
 !will-be-executed-steps.png!
 In this screen:
 * The master step is a composite step which sequentially executes steps _checkout_, _build with Ant_, and _publish_. The _publish_ step executes in parallel the child steps _publish artifacts_ and _publish JUnit reports_.
 * Steps with a dashed border are defined in ancestor configurations. This means that step _master_, _checkout_, _publish_, and _publish JUnit reports_ are inherited from the ancestor configurations.
 * Steps with a solid border are defined in the current configuration. This means that step _build with Ant_ and _publish artifacts_ are defined in the current configuration.
 * Hover mouse over the step name link will display the step definition.
 * New steps can be inserted into the execution flow by clicking one of the icons:
 ** !add-child.gif! this icon only appears when the step is a composite step. It will first define a new step in the current configuration, and then modify the current step to contain the newly created step. If the current step is an inherited step, the step will be overridden to apply the particular step modifications without modifying the original step.
 ** !add-before.gif! this icon will allow you to define a new step and add it before the current step. It will first define a new step in the current configuration, and then modify the parent step to contain the newly created step. If the parent step is an inherited step, it will be overridden to apply the particular step modifications without modifying the original step.
 ** !add-after.gif! this icon will allow you to define a new step and add it after the current step. It will first define a new step in the current configuration, and then modify the parent step to contain the newly created step. If the parent step is an inherited step, it will be overridden to apply the particular step modifications without modifying the original step.
 * Only steps defined in current configuration can be deleted. Clicking the remove icon will first remove the step definition from the current configuration, and then modify the parent step to remove the step reference from the children list. If the parent step is an inherited step, it will be overridden to apply the modifications without modifying the original step.
 * Each step can be edited. If an inherited step is edited, it will be overridden to apply the modifications without modifying the original step.
 * If you want to adjust child execution order inside a sequential composite step, you'll need to edit the composite step, and modify the child order there.
 * You can introduce new steps into the execution flow by editing a composite step and add more steps. However, you can only choose from existing steps (either defined in the current configuration, or steps inherited from ancestor configurations). Various add icons in this view are convenient way to define new steps and then add them into the execution flow.
  In the above screenshot, steps are organized from top to down in the workflow, and this means sequential execution. For parallel execution, steps will be organized from left to right like below:
 !parallel-sequential.png!
  
 If the master step is not defined in current [configuration hierarchy], below screen will be displayed:
 !default-step-not-defined.png!
 In this case, the configuration can not be built because the master step is not defined. To add the initial step, just click the !add.png! icon to define a master step of your choosed type. Typically you add the master step as a composite step, and then add other appropriate steps as its children.
  
 h2. All defined steps
 !stepmenu3.png!
 This will display all defined steps in the current configuration. Please note that some steps defined here may not appear in the _will be executed steps_ view, if they can not be reached from the master step recursively. At the same time, some steps that appear in the _Will be executed steps_ view may not be defined here, because they are inherited from the ancestor configurations.
  
 h2. Step menu
  
 Step menu is used to choose step types when add new steps or edit existing steps. It can be brought out from three places:
 # When add new step from tab _step execution graph_:
 !stepmenu1.png!
 # When add new step from tab _all defined steps_:
 !stepmenu2.png!
 # When edit an existing step:
 !stepmenu3.png!
  {info}Steps can only be edited by users with EDIT_SETTINGS permission.{info}