“Run in Preflight” and “Run in Preflight Only” explained in IBM UBuild!

The Preflight plugin provides steps that can be used for developer Preflight builds


The preflight client first starts a simple file server.
First, The server is used to transfer source files from the user desktop to a build agent and to transfer build artifacts from the build agent to the user desktop.
Next, the preflight client requests anthill to perform a build. It is expected that the build will have special preflight transfer steps already configured.

  1. One step will request source files from the preflight client that originated the build and lay them down in the workspace directory.
  2. The second step will send artifacts from the agent back to the preflight client.

The basic model for a preflight workflow is this.

  • Check out source.
  • Transfer modified source files from the preflight client. These files will overwrite the pristine copy.
  • Run build commands.
  • Transfer build artifacts to the preflight client.
  • Alternatively, the source checkout step could be skipped altogether and the preflight client will provide all source files.


In normal usage, the preflight system depends on steps added to the normal build workflow. These steps are in the Preflight folder:

  • “Transfer Source Step” and
  • “Transfer Artifacts Step”.

These steps should be added at appropriate points in your build job.

All steps, including preflight steps, have preflight flags in the “Additional Options” section of the step configuration. The first, “Run in Preflight”, controls if the step is executed in a preflight build. Most steps will leave this on the default, true. The main exception would be artifact publishing steps. Artifacts from preflight builds are often not preserved on the server.

The second option, “Run in Preflight Only”, controls if the step is executed only in a preflight build. Normal builds do not execute steps with set to true. By default, this option is false and most steps will use this setting. The exceptions are the two preflight steps. These should only be used in a preflight a build as the communicate with the preflight client. When configuring these steps, set “Run in Preflight Only” to true.

The preflight flags are not limited to any particular steps. This is useful, for example, for skipping packing steps not useful to a preflight user or publishing preflight artifacts to special artifact sets.

Simple Build

The preflight client controls what files are sent and what files are received with command line options. For sending source files, “-i” will add an include pattern and “-x” will add an exclude pattern. For receiving files, the options are similiar: “-I” will add an artifact include pattern and “-X” will add an exclude pattern (note the difference is case).

Here’s a simple example:

C:\>preflight build -p petstore -w "build trunk" -i "src/**" -x "src/conf/**" -I "dist/*.war" -X "dist/util.war"

This command will run the “build trunk” workflow of the “petstore” project. All source files will be included except those in src/conf. All WAR files in dist will be returned, except for util.war.





Tagged : / /

Difference between jenkins and Urbancode build

What is the difference between jenkins and Urbancode build?

jenkins Urbancode build
Jenkins is open framework for automating the repeative tasks and has great plugins which can be used to create entire automated customized continous integration framework. Urbancode build(uBuild) is for automating the repeative tasks and has great limited sets of plugins which can be used to create entire automated continous integration flow.
Jenkins can deliver core CI loop: Detect a change, do a build, test, and deliver feedback and its open framework allows and can be used for software Deployment as well. Urbancode build(uBuild) can deliver core CI loop: Detect a change, do a build, test, and deliver feedback but it can be not be used for deployment. Urbancode Deploy(uDeploy) is another product by IBM which can be used for deployment.
Jenkins can be extended with Large sets of plugins https://plugins.jenkins.io/ Urbancode build(uBuild) can be extended with Limited sets of plugins https://developer.ibm.com/urbancode/plugins/
Jenkins is one of top active Open Source and free developed in Java. Urbancode build(uBuild) is properiety tool by IBM, previously known as Urbancode and developed in Java
Jenkins has plugins which needs extra learning curve by development teams for centrally defined templates Urbancode build(uBuild) has built-in Easy addition of new projects by development teams based on centrally defined templates
Jenkins has Dependency management and but not awareness. Build based on project relationships. Urbancode build(uBuild) has Dependency management and awareness. Build based on project relationships.

My Recommendation – Jenkins

Tagged : / / / /

How to Install plug-ins in IBM UrbanCode Build


  1. Download the installation files for one or more plug-ins from the following site: https://developer.ibm.com/urbancode/plugins/ibm-urbancode-build/. Do not extract the compressed files.
  2. Load the plug-ins:
    1. From the IBM UrbanCode Build user interface, click the System tab.
    2. In the Server group, click Plug-ins.
    3. On the Plugins page, Browse and locate the plug-in installation file and then click Open.
    4. On the Plugins page, click Load.


After the upload to the server is complete, the plug-in is listed on the Plugins page and available for immediate use.

Uninstalling a plug-in

To uninstall a plug-in, click System > Plug-ins, locate the plug-in, and then click the Delete icon.

Note: Before uninstalling a plug-in, verify that it is no longer in use. Deleting a plug-in which is being used by existing processes causes those processes to be invalid.

Tagged : / / / /

Upgrading from IBM uBuild or earlier

SSLv3 is no longer supported by IBM uBuild or IBM UrbanCode Build due to the POODLE vulnerability. In fixing the vulnerability, there are a few steps that should be taken prior to upgrading to uBuild or later and UrbanCode Build 6.1 and later.

Before starting your upgrade, you should do the following:

  1. Shut down your IBM uBuild or IBM UrbanCode Build server
  2. Download the latest IBM UrbanCode Build release
  3. Extract the IBM UrbanCode Build .zip file
  4. Navigate to extracted directory
  5. Navigate to the agentupgrade directory
  6. Copy the air-agentupgrade.jar file to your existing server’s opt/tomcat/webapps/ROOT directory
  7. When prompted, replace the existing file
  8. Start your IBM uBuild or IBM UrbanCode Build server
  9. Navigate to the Agents tab
  10. Select all existing agents and tell them to upgrade

Upgrading the agents ahead of time prevents an issue where old agents are no longer able to connect to the IBM UrbanCode Build server because they try to use SSLv3. If you do not upgrade proactively the agents will be unable to communicate with the server, requiring manual upgrades. Once all of your existing agents have been upgraded, proceed to upgrade your server as you normally would.

Once you have upgraded your server, you must also upgrade any plugins that upload any information back to the server. This would include any issue tracking, reporting, or SCM plugins. If the plugins are not upgraded, you will see an SSL Handshake Exception whenever step from the plugin tries to upload anything to the server.

The full list of plugins that need to be upgraded is as follows:

  • AccuRev
  • AccuWork
  • Checkstyle
  • ClearQuest
  • Cobertura
  • CodeStation
  • CppUnit
  • CVS
  • FileSystem
  • FindBugs
  • Git
  • HP Fortify
  • HP Quality Center
  • JaCoCo
  • JIRA
  • JUnit
  • Mercurial
  • MSTest
  • NUnit
  • Perforce
  • PMD
  • Rally
  • Rational Team Concert SCM
  • Rational Team Concert Work Items
  • Report Publisher
  • Reporting
  • Sonargraph
  • SonarQube
  • Team Foundation Server
  • TFS Work Items




Tagged : / /