Powerful Build Setup and Workflow Design
QuickBuild provides an easy and flexible way to set up builds. You may define arbitrary steps visually and arrange them executing either sequentially, or parallelly on selected nodes. When manage builds for many projects, QuickBuild's ability to inherit and override build definitions makes the job incredibly easy. With the help of scripting and variables, QuickBuild is able to address almost all kind of build scenarios.
Organize projects hierarchically for easy management and navigation
Projects and configurations are organized in a tree structure. Operations against a high level tree node can be applied to all child nodes if necessary. For example, you may subscribe to high level tree nodes to get build notifications of all child projects.
Reuse build workflows between projects through inheritance and achieve workflow diversity by using variables
Common build workflows can be defined in high level tree node, and low level nodes will be able to access these workflows and optionally reuse them in a bigger workflow. Assume you need to set up builds for multiple branches. You may define a project level configuration first to hold build workflow definitions with branch parameterized as a variable. And then add separate configuration for each branch just to override the branch variable. You do not need to repeat the workflow definition in these branch configurations and will save a lot of work.
Design complex build workflow visually, with drag and drop
Build workflow can be designed visually through QuickBuild's web interface. You may arrange steps to execute concurrently or sequentially, change step execution order, insert/remove steps, or override step definitions from parent configurations. Steps can be configured to run when certain conditions are satisfied, and on grid nodes satisfying specified conditions. When build is running, the designed workflow will be displayed with step execution status to provide a straightforward view of build progress.
Repeat execution of steps, sequentially or parallelly
Step can be repeated for different set of parameters, either parallelly, or sequentially. For example, you may create a singe test step to have it execute for each combination of possible databases and OS platforms, or have it run on every build agents. This can greatly reduce number of steps needed in a complex build workflow.
Flexible version strategy for QA and release builds
Different product may have different version strategy. Some products use the simplest "major.minor.patch" strategy, and some may want to include the date or SCM revision into the build version. Some products want to auto-increase certain part of the version at release time, and some may want to manually specify the version at release time. QuickBuild out of the box provides a simple version strategy by auto-increasing the last digit of the build version specified by user. However arbitrary complex version strategy can be implemented with simple inline scripting and variables.
For example you may instruct QuickBuild to auto-generate version in form of "1.0 beta1, 1.0 beta2, 1.0 beta3...", while delivering beta builds of 1.0, and automatically revert back to use "1.1 beta1, 1.1 beta2, 1.1 beta3..." when 1.0 is released and your team start to deliver 1.1 betas.
Transitive build dependency support and artifacts resolving
Cross-project dependencies can be configured in QuickBuild. Dependency artifacts can be resolved and retrieved when a project using that dependency is being built. Artifacts can be configured to fetch from desired build of dependency project, including latest recommended build, latest successful build, and build of specified version. During the process of artifact resolving, QuickBuild also supports to trigger the dependency project to generate new dependency build if changes are detected.
Parameterized manual build with customizable option screen
It is often desired to specify certain build parameters when manually triggers a build. For example, release engineers may want to specify the build version at the time of releasing, and developer may want to specify whether or not to run a certain set of tests when requesting proof builds.
With the help of variables, QuickBuild can be configured to run scheduled builds with default parameters, and prompt for user input for these parameters when the build is triggered manually. Build parameters can be prompted in a variety of ways, including text input, password input, check boxes, and selection boxes. Input values of prompted parameters will be saved for current user and will be displayed as default value when the build is manually triggered next time by the same user. This parameterization also applies when a build is promoted.