FinalBuilder v18.104.22.1680 Professional Edition
FinalBuilder v22.214.171.1240 Professional Edition
Automating your Build process is simple with FinalBuilder. With FinalBuilder you don't need to edit xml, or write scripts. Visually define and debug your build scripts, then schedule them with windows scheduler, or integrate them with Continua CI, Jenkins or any other CI Server. Thousands of Software Developers rely on FinalBuilder to automate the build, test and release process.
The FinalBuilder Interface
FinalBuilder's core interface elements are the:
Action Types Tab
Run Tab and
FinalBuilder's interface is dockable and completely customizable. To the right is a screenshot of the default layout. You can refer back to this screenshot (click to enlarge) to see which dock zone each of the interface elements belongs to by default.
Action Types Tab
FinalBuilder provides more than 600 pre-written scripts, called actions. Actions can interop with compilers, version control systems & testing tools, perform file operations and much more.
To automate each stage of a build process, actions can be combined into an action list. The "Actions" tab lists every action that can be added to your build project.
To quickly find the aciton you require, there is a "Search" box at the top of the Actions tab. You can search for actions by action name eg. Build VS.Net Solution, product name eg. Visual Studio or category eg. Compiler.
To add an action to your build project, click on it or drag-and-drop it into and Action List.
Main Action List
The main action list is where you define your build script. The build process will consist of a set of actions, which are executed from the top to the bottom during a build process.
Actions may be laid out in a parent/child hierarchy to add structure to your build process. In the example to the right, some nodes of the build process from above have been collapsed ("Try" and "Catch") to focus attention on the steps in the "Finally" action group.
The OnFailure action list is a special list of actions which get executed only if your build fails. OnFailure actions typically "clean up" so that the next build runs without error (eg. Check files back into version control).
Executing a Build
To run a build, click the run button on the toolbar, or select the Run menu option from the Run menu.
Running a build puts the FinalBuilder IDE into a build running state where it automatically selects the current action being executed as well as displaying logging information in the build log (see below).
When a build is running you cannot edit any actions, but you can change tabs at the bottom of the IDE so you can access the Run Status, or Watches for example. You can pause or stop a build using the Run menu or the toolbar buttons.
The build log is where the output and logging messages of a build are stored.
The log is organised in the same hierarchy as your build process and records all the timing, status, and messages which occurred during the build.
The build log is updated in real time, so that you can watch the progress of the build.
FinalBuilder enables Advanced Flow Control during builds
FinalBuilder's Flow Control actions provide many of the control constructs you expect in a fully fledged programming language. You have Try/Catch/Finally actions to handle exceptions; If/Then and Switch/Case actions to conditionally execute child actions; and For and While loops to iterate over actions and Action Groups to structure a clean build project. Combined you can use these actions to create a FinalBuilder project as dynamic as your build process requires.
Try, Catch and Finally
The Try/Catch/Finally actions can be used to structure exception handling. If child actions of a Try block fail, then the actions under the Catch block will be executed. This allows you to deal with errors that occur during the try block.
These actions also need an End action to complete the block and they all need to be at the same node level in the tree to form a valid block. You can also nest the Try/Catch/Finally blocks, and they can be used in Try/Catch/Finally/End, Try/Catch/End or Try/Finally/End constructs.
Switch, Case and Else
The Switch, Case and Else actions provide a selector construct using simple case insensitive string comparisons.
The Case action must be a child of the Switch action, the same goes for the Else. Note that the Else can also be used with the If..Then action.
When used with the If..Then action the Else action must be the next sibling action of the If..Then action. Another conditional action is the If Previous Action Failed action. As the name suggests, this action only executes if it's previous sibling action has "Ignore Failure" enabled (otherwise the build would stop).
Async Action Group
You can also use the Aysnc Action Group to multi-thread components of your build project. Run multiple actions in the build process simultaneously or entire build processes in parallel to improve the speed of the build. The image to the right shows a very simple implementation of the Aysnc Action Group executing 3 DOS commands simultaneously.
Schedule your FinalBuilder Builds
Scheduling Daily & Nightly Builds
FinalBuilder provides tight integration with the Windows' scheduling service which enables you to schedule daily and nightly builds. Create a scheduled build by opening a project in FinalBuilder and clicking the Tools | Scheduler menu item.
The Scheduled Builds window will open and display the currently scheduled builds and their status.
Clicking on the New Task button in the Scheduled Builds window invokes a wizard to guide you through scheduling a build project. For more advanced control over the schedule, you can edit the scheduled task using the windows scheduler editor by clicking on the Edit Task (Advanced) button.
A debugging engine is fully integrated into the FinalBuilder IDE. You can step between actions, set break points and set variable watches to debug your build process.
Detailed Logging makes it easy to find and resolve errors.
Viewing a Build Log
When FinalBuilder runs a build, the output and status of each action is logged to the Build Log. If the build stops because of an error in one of the actions, the log tree node for that action will be expanded. If the build completes with no errors, the top level node will be collapsed.
The structure of the build log reflects the order in which actions were executed.
FinalBuilder automatically saves the log to the log archive file with the extension .fblz and the same name as your finalbuilder project.
The log for a build can also be exported to Text, HTML or XML.
The History & Statistics view shows the archive of log files for a project. You can configure how many build logs are saved in the the log archive and also view old logs by selecting the log entry and clicking on the View Log button.
Email, MSN, FTP & SFTP Support
Your build process can email the results of the build to you. For example, if the build fails it can export the log, attach it to an email and send it to you. You can announce successful builds on NNTP news servers.
Using variables is the key to making your build process dynamic. Use variables to pass information from one action to another, and enable actions to build with user specific or machine specific value.
Version Control Integration
FinalBuilder supports more than a dozen version control systems out-of-the-box, so it can get, checkout, tag and perform other build related operations with your existing revision control system.
Each FinalBuilder action exposes a number of script events, where you have access to all the properties of the action using VBScript, jР°vascript, Powershell or Iron Python. In addition, the "Run Script" action allows you to perform specific tasks which might not be covered by the built in action types.
Action Studio is an IDE for writing custom FinalBuilder actions. It provides a way to extend the built-in functionality in FinalBuilder. Action Studio is included in FinalBuilder and can be accessed under the "Tools" menu.
All FinalBuilder Features
For a list of all the features in FinalBuilder, and to compare the Standard and Professional editions, see the Feature Matrix.