In 3.1 we have introduced Tasks. Each Job can now have multiple Tasks which run in order on a single Agent. If a Task fails the following tasks will not execute, with the exception of Final Tasks which will always execute. Tasks are pluginable and have replaced Bamboo's Builders. We have included a Compatability Task which will run old Builder configurations however, we encourage you to update Builders as soon as possible.
We've made writing new Task plugins incredibly easy. You can find all the information on creating Tasks on our Tasks Overview page. Also on that page you can find information regarding the new way we handle Requirements and Capabilities.
Another feature in 3.1 is Paramaterised Builds, providing the ability to override variables at the run time of a build. With this we have moved Global Variable storage into the database and introduced the concept of Plan Variables.
No Replacement. QuietPeriodAwareRepository is still valid
inject TaskManager instead
UIConfigBean .getExecutableLabels( String shortKey ). Requirements and Capabilities are not closely tied to Tasks.
RequirementSet .getRequirement( String key, long ownerId )RequirementSet .getRequirement( long )
Notes: Requirements are now closely tied to the Task they belong to. For more information on Requirements and Capabilities view our Tasks Overview page
RequirementSet .removeRequirement( @NotNull Requirement requirment ).The key is no longer unique, use the above methods to obtain the correct Requirement to remove.
VariableDefinitionManager. Variable storage have been moved from the administrationConfiguration.xml file into the database.
As mentioned above we have introduced Tasks. This is a new plugin point allowing you to easily create multiple execution steps in your Build. We've made writing new Task plugins incredibly easy. You can find all the information on creating Tasks on our Tasks Overview page.
Repository (or actually any other module) can implement CacheHandler to have its caches managed via Administration->Manage Caches page
We've added infrastructure for analysing build logs on the fly. For documentation, see LogInterceptor. You can add these interceptors to the LogInterceptorStack in the BuildLogger. For examples of usage, see com.atlassian.bamboo.build.logger.interceptors.StringMatchingInterceptor and com.atlassian.bamboo.plugins.ant.task.AntBuildTask .
Want to use people's avatars in your plugin? Just inject the GravatarService into your server side plugin, or use the FreeMarker macro:
[@ui.displayUserGravatar username="msmith" size="26"/]