Bamboo 9.2 upgrade notes
We’ve collected some important notes on upgrading to Bamboo 9.2. For details on all the new features and improvements we’ve introduced in this release, see the Bamboo 9.2 release notes.
Upgrade notes
While long-term support (LTS) releases don’t introduce any breaking changes themselves, they do consolidate all of the changes we’ve made to Bamboo ever since the last LTS release became available. However, because Bamboo 9.2 is our first LTS release, we’ve selected Bamboo 8.0 (our first Data Center offering) as the starting point for listing the upgrade notes.
For your convenience, we’ve gathered all the important information you should know about before upgrading right here:
Pushing to remote repositories with JGit no longer possible in Bamboo 9.2.14 and later
We’ve found a bug in Bamboo’s long-deprecated JGit feature that poses a risk to the integrity of repositories using the Large File Storage (LFS) extension. Because of the way we’ve implemented JGit’s push functionality in Bamboo, pushing local commits to LFS-enabled repositories may not work as expected. To prevent issues with file integrity, we’ve disabled pushing to remote repositories with JGit.
Bamboo’s JGit feature has never supported making any modification of the repository, including the creation of commits, branches, or tags. If you need this functionality, install native git.
Installing apps with the Universal Plugin Manager on Bamboo 9.2.11 and later
The Universal Plugin Manager (UPM) allows installing Atlassian and third-party apps in Bamboo and other Data Center products in three ways:
- with the Upload app button on the Manage apps page where you provide a URL to the app or upload a file with the app
- with the REST API (/rest/plugins)
- with the Install button on the Find new apps page
In Bamboo Data Center 9.2.11, you can install new apps only by selecting the Install button on the Find new apps page. Installing new apps with the Upload app button on the Manage apps page or with the REST API is now disabled by default. This limitation prevents unwanted uploads of potentially malicious files to your Bamboo instance.
If you need to enable app installation with the Upload app button on the Manage apps page or with the REST API, set the following system property:
upm.plugin.upload.enabled=true
Learn how to set system properties
Bamboo 9.2.8 and later no longer ship with JDBC driver for the H2 database engine
To resolve several security vulnerabilities, the JDBC driver for the H2 database engine is no longer bundled with Bamboo 9.2.8 and newer. If you want to evaluate Bamboo using the H2 database, see Connect Bamboo to an H2 database.
Bamboo 9.2.7 and later require JDK 8u121 or later to run
If you want to run Bamboo 9.2.7 or later on Java 8, make sure that you're using JDK 8u121 or newer. Because Bamboo 9.2.7 uses deserialization libraries that require the sun.misc.ObjectInputFilter
interface, older JDKs, which don't have that interface implemented, will prevent Bamboo from starting up.
Bamboo now supports Bitbucket Data Center and Server 7.5 or newer only
In this release, we fixed a bug where restarting Bamboo while a build triggered from Bitbucket Data Center or Server was still running resulted in the build status in Bitbucket getting stuck in In progress indefinitely. However, the fix increases the minimum release of Bitbucket Data Center and Server supported by Bamboo.
From now on, Bamboo can integrate with Bitbucket Data Center and Server 7.5 or newer only. If you’re running an older release of Bitbucket Data Center or Server, consider upgrading your Bitbucket instance before upgrading to Bamboo 9.1.
Support for Large File Storage (LFS) files in Bamboo Specs is deprecated
In Bamboo 9.1, we’ve deprecated support for LFS files in Bamboo Specs and we’ll remove support for them entirely in Bamboo 9.3. As a result, Bamboo will process Specs much faster in source code repositories with the LFS extension enabled, even if you didn’t use LFS in your Specs before.
The SCP task no longer creates multiple nested artifact subdirectories
We’ve fixed a known bug that caused the SCP task to create too many nested artifact subdirectories. Now, the SCP task has full control over the artifact download location and no longer depends on the artifact subscription download path. However, this means that your artifacts may be downloaded to a different location than previously.
Bamboo 9.0.1 and up
Bamboo now supports Bitbucket Data Center and Server 7.5 or newer only
In release 9.0.1, we fixed a bug where restarting Bamboo while a build triggered from Bitbucket Data Center or Server was still running resulted in the build status in Bitbucket getting stuck in In progress indefinitely. However, the fix increases the minimum release of Bitbucket Data Center and Server supported by Bamboo.
From now on, Bamboo can integrate with Bitbucket Data Center and Server 7.5 or newer only. If you’re running an older release of Bitbucket Data Center or Server, consider upgrading your Bitbucket instance before upgrading to Bamboo 9.0.1.
Bamboo 9.0.0 and up
Changes to notification webhook payload processing
Notification webhooks no longer support a payload for the GET and DELETE methods. Any payload content will now be discarded silently (that is, without an error message). The POST and PUT methods still work the same as before.
Learn more about using webhooks.
Enterprise Data Center Platform upgrade
Atlassian Platform is a set of components upon which we build our products. In Bamboo 9.0, we’re bumping up the Atlassian Platform to version 6 to benefit from the most up-to-date libraries and even better security.
Here’s a list of the most significant changes that you should be aware of to verify the compatibility of the apps you’ve built before upgrading Bamboo:
We built Bamboo 9.0 on top of Atlassian Platform 6.0, which introduces several significant changes that you should be aware of to verify the compatibility of the apps you’ve built before upgrading Bamboo.
Upgraded third-party libraries
We’ve upgraded the following third-party libraries for compatibility with Atlassian Platform 6.0:
jdom was upgraded to 2.0.6.1
guava was upgraded to 31.0.1-jre
json was upgraded to 20220320
rome was upgraded to 1.18.0
Upgraded platform components
We’ve upgraded the following components for compatibility with Atlassian Platform 6.0:
parent-poms was upgraded to 6.0.6
application-links was upgraded to 9.0.5
amps was upgraded to 8.4.2
atlassian-activeobjects was upgraded to 4.0.4
atlassian-annotations was upgraded to 4.0.0
atlassian-cache was upgraded to 6.0.1
atlassian-core was upgraded to 8.0.0
atlassian-event was upgraded to 5.0.1
atlassian-failure-cache was upgraded to 3.0.0
atlassian-gadgets was upgraded to 8.0.4
atlassian-healthcheck 1 was upgraded to 7.0.0
atlassian-httpclient was upgraded to 3.0.0
atlassian-oauth was upgraded to 5.0.2
atlassian-plugins was upgraded to 7.0.4
atlassian-plugins-webfragment was upgraded to 6.0.0
atlassian-plugins-webresource was upgraded to 6.0.3
atlassian-pretty-urls was upgraded to 4.0.1
atlassian-rest was upgraded to 7.0.1
atlassian-sal was upgraded to 5.0.0
atlassian-scheduler was upgraded to 4.0.0
atlassian-soy-templates was upgraded to 6.0.4
atlassian-spring-scanner was upgraded to 3.0.1
atlassian-template-renderer was upgraded to 5.0.2
atlassian-trusted-apps was upgraded to 6.0.0
atlassian-vcache was upgraded to 2.0.0
beehive was upgraded to 5.0.0
caesium was upgraded to 3.1.2
io.atlassian.fugue was upgraded to 5.0.0
upm-server was upgraded to 6.0.4
Bamboo migrates to Log4j2
We’ve migrated Bamboo to Log4j 2. This introduces changes to the configuration files that are described in the official documentation.
If you’re using a custom Log4j 1.x configuration with your Bamboo instance, you’ll need to manually migrate it to the Log4j 2.x configuration file format. See Migrating custom logging configurations to Log4j 2.
Atlassian User Interface (AUI) upgrade
Bamboo 9.0 updates AUI from 7.10 to 9.4. If your app uses any AUI resources or depends on libraries previously provided by AUI, here’s what you should know:
AUI no longer bundles jQuery interface dependencies, so your app should import them explicitly. For more information, see the AUI 8 upgrade guides and the AUI 9 upgrade guides.
Underscore is updated to 1.13.1. See the changelog.
Backbone is updated to 1.4.0. See the changelog.
jQuery is updated to 2.2.4
Because of the AUI upgrade, you might encounter some problems with your apps. See the following sections for more information on the most common issues and ways to fix them:
Artifacts now support multiple copy patterns and exclusion patterns
Bamboo 9.0 supports adding multiple copy and exclusion patterns to artifact definitions.
This is a breaking change. If your apps use artifacts, make sure to adapt them accordingly (especially those that use the data provided by the Artifact downloader task).
Embedded Crowd upgrade
Bamboo 9.0 ships with Embedded Crowd 5.0. To find out what’s new in this Crowd release, head over to the Crowd 5.0 release notes.
Tomcat upgrade
We’ve upgraded Apache Tomcat to version 9.0.64. See the changelog.
Lucene index removal
Bamboo no longer indexes data using the Lucene library. The API related to the Lucene index, which was deprecated since version 7.2, has also been removed. Make sure to verify the compatibility of third-party apps with Bamboo 8.2.
Remote agents wrapper support for Apple silicon
Bamboo 8.2 comes with an upgraded Tanuki wrapper providing support for Apple silicon. Remote Agents may require reinstalling the wrapper. For more details, see the Bamboo remote agent installation guide.
Removal of build warning parsers
In this release, we've upgraded the build warning parser library to a newer version that removes Clang-Tidy and RT Tests Parser from the Build warnings parser task.
Changes to custom Elastic Bamboo region configuration
If you use Elastic Bamboo with a custom AWS Region and have modified the Ec2ClientFactoryImpl
bean configuration in applicationContextAgentServer.xml
, update the configuration and add a signing endpoint to it.
Edit the <BAMBOO_INSTALL_DIR>/atlassian-bamboo/components/bamboo-web-app/src/main/resources/applicationContextAgentServer.xml
file by adding the signing region alongside the custom endpoint to the Ec2ClientFactoryImpl
bean configuration:
<bean id="awsAccountBean" class="com.atlassian.bamboo.agent.elastic.aws.AwsAccountBeanImpl" plugin:available="true">
<constructor-arg ref="elasticAccountBean"/>
<constructor-arg>
<bean class="com.atlassian.aws.AWSManagerImpl">
<constructor-arg>
<bean class="com.atlassian.aws.Ec2ClientFactoryImpl">
<constructor-arg value="<custom endpoint url>"/>
<constructor-arg value="<custom signing region>"/>
</bean>
</constructor-arg>
<constructor-arg ref="elasticScheduledExecutorService"/>
</bean>
</constructor-arg>
...
</bean>
Reusing Elastic Bamboo credentials in the S3 artifact handler configuration
The S3 artifact handler currently doesn't support instance profile credentials. If you configure Elastic Bamboo to use an IAM instance profile, update the artifact handler configuration and provide a separate AWS access key for it.
New Stock Elastic Images
The Stock Elastic Images bundled with Bamboo 8.2 come with a number of breaking changes:
- Only images based on Ubuntu 20.04 LTS and Windows Server 2019 64-bit are provided. The Amazon Linux-based AMI is no longer available.
- Stock AMIs now use HVM virtualization only. Images using PV virtualization are no longer available.
- All images are now EBS-backed. Instance store-backed images are no longer available.
Additionally, all images have a limited set of capabilities. See the following sections for more information.
Ubuntu AMI capabilities
The ‘ec2-user’ account is no longer created on the Ubuntu AMI. If you need to access an EC2 instance started from the image, use the ‘ubuntu’ user account instead.
Capability | Path |
---|---|
Docker | /usr/bin/docker |
Git | /usr/bin/git |
JDK 8 | /opt/jdk-8 |
JDK 11 | /opt/jdk-11 |
Maven 3.8 | /opt/mvn-3.8 |
Windows AMI capabilities
Capability | Path |
---|---|
JDK 8 | C:\opt\jdk-8 |
JDK 11 | C:\opt\jdk-11 |
Maven 3.8 | C:\opt\mvn-3.8 |
Git | C:\opt\bin\git\git.exe |
If you want to try the new AMIs before upgrading, see the following list:
image.US_EAST_1.EBS.x86_64.linux.HVM.Ubuntu=ami-07272e09cff3e0113
image.ASIA_PACIFIC_NE_1.EBS.x86_64.linux.HVM.Ubuntu=ami-0c23d43955cf2f073
image.AP_NE_2.EBS.x86_64.linux.HVM.Ubuntu=ami-0fcfe40554edc55a2
image.AP_S_1.EBS.x86_64.linux.HVM.Ubuntu=ami-0e645edf0f8b3ab46
image.ASIA_PACIFIC_SE_1.EBS.x86_64.linux.HVM.Ubuntu=ami-068048204d0186b06
image.ASIA_PACIFIC_SE_2.EBS.x86_64.linux.HVM.Ubuntu=ami-0323877238e2add03
image.CA_CENTRAL_1.EBS.x86_64.linux.HVM.Ubuntu=ami-01bfe0d24cd013e3e
image.EU_CENTRAL_1.EBS.x86_64.linux.HVM.Ubuntu=ami-0686bae55e614801f
image.EU_WEST_1.EBS.x86_64.linux.HVM.Ubuntu=ami-0fec35eedef504db5
image.EU_WEST_2.EBS.x86_64.linux.HVM.Ubuntu=ami-09e046949edd3a7fc
image.EU_WEST_3.EBS.x86_64.linux.HVM.Ubuntu=ami-07817a11b970d2776
image.SOUTH_AMERICA_1.EBS.x86_64.linux.HVM.Ubuntu=ami-0f75e9c95801c531a
image.US_EAST_2.EBS.x86_64.linux.HVM.Ubuntu=ami-0124fdc3629ba4f71
image.US_WEST_1.EBS.x86_64.linux.HVM.Ubuntu=ami-0a2a74ba81451c3f9
image.US_WEST_2.EBS.x86_64.linux.HVM.Ubuntu=ami-07adb1b7ce699f577
image.US_EAST_1.EBS.x86_64.windows.HVM.Windows=ami-0419a12ab0085397b
image.ASIA_PACIFIC_NE_1.EBS.x86_64.windows.HVM.Windows=ami-02c26d0ba102f002b
image.AP_NE_2.EBS.x86_64.windows.HVM.Windows=ami-08812173816a7b088
image.AP_S_1.EBS.x86_64.windows.HVM.Windows=ami-01cd060de240f8ab0
image.ASIA_PACIFIC_SE_1.EBS.x86_64.windows.HVM.Windows=ami-042a9ebce3ab3e42e
image.ASIA_PACIFIC_SE_2.EBS.x86_64.windows.HVM.Windows=ami-0ab3874abac07b0fc
image.CA_CENTRAL_1.EBS.x86_64.windows.HVM.Windows=ami-073e82525fa632d48
image.EU_CENTRAL_1.EBS.x86_64.windows.HVM.Windows=ami-019d4f5c593fda3ed
image.EU_WEST_1.EBS.x86_64.windows.HVM.Windows=ami-08304fbdfa5ad0250
image.EU_WEST_2.EBS.x86_64.windows.HVM.Windows=ami-09047d0dceccd11e6
image.EU_WEST_3.EBS.x86_64.windows.HVM.Windows=ami-075f70174eacc9c22
image.SOUTH_AMERICA_1.EBS.x86_64.windows.HVM.Windows=ami-0272319321a35e64e
image.US_EAST_2.EBS.x86_64.windows.HVM.Windows=ami-03ec1ff01a06b892b
image.US_WEST_1.EBS.x86_64.windows.HVM.Windows=ami-01e6ce425afac8574
image.US_WEST_2.EBS.x86_64.windows.HVM.Windows=ami-099d14d1caf21b681
If you rely on capabilities that are not present in the new AMIs, you can keep using the old ones. However, because old AMIs won’t receive any security updates, we recommend migrating as soon as possible.
In addition, Stock Elastic Images are no longer guaranteed to be backwards compatible. All breaking changes will still be documented in the version-specific upgrade notes, but you shouldn't rely on installed capabilities or image configuration as they can change with each version. We recommend building your own Elastic Image instead.
Deprecation of the server-local artifact handler
The server-local artifact handler has been deprecated in Bamboo 8.1. Support for this artifact handler will be removed in the next Bamboo release.
Changes to the home directory structure
As part of the cold stand-by capabilities of Bamboo Data Center, major changes were made to the home folder. As part of the upgrade, the home folder is split into two parts: one containing data that will be exclusive for each instance, and another folder that contains the files that will be shared among every node. Applying this change is required for using multiple nodes with Bamboo Data Center, but other types of Bamboo installations are also affected, including Server and single-node Data Center setups.
Before you upgrade, we recommend that you learn more about the changes to the home directory structure at Bamboo home migration.
Changes to the commons-io API
The Commons IO library was upgraded from 2.6 to 2.8.0. It causes different behavior of the FileUtils.cleanDirectory
method on Windows. The previous version was able to remove read-only folders, but commons-io 2.8.0 has a bug, which prevents the removal of a folder if it contains a directory with the read-only flag. App vendors should use com.atlassian.bamboo.utils.BambooPathUtils#cleanDirectory
for directory cleanup.
Lucene API removal
The Lucene API was deprecated in Bamboo 7.2 and removed in 8.0. App vendors should use other places for data storage like Bandana or Active Objects.
Removed support for CVS and Mercurial
In Bamboo 8.0, we've removed support for CVS (deprecated in Bamboo 7.1) and Mercurial (deprecated in Bamboo 7.2). See Supported platforms for more details.
Remote agent wrapper support for Java 11
As part of the support for Java 11, you can upgrade Java used by remote agents from version 8 to 11. See the Bamboo Remote Agent installation guide for detailed instructions.
Connecting to MySQL databases
When connecting Bamboo to a MySQL database, make sure to use the correct version of MySQL Connector/J:
- For MySQL 5.7 use version 5.1.49. Using a different version requires additional configuration options:
- versions 5.1.48 and older require configuring TLS (by setting the connection string flag, for instance: enabledTLSProtocols=TLSv1.2,TLSv1.1,TLSv1.0) due to deprecation of TLS 1.0 and 1.1
- version 8.0.26 requires setting the nullCatalogMeansCurrent flag to true in the DB connection string
- For MySQL 8, version 8.0.26 or later is recommended.
Code coverage plan settings are more strict
If plan configuration has Code coverage settings enabled, the build will fail if the file with coverage data is not found on build completion.
Changes to supported platforms
We’ve made a few changes to what platforms we support since Bamboo 8.0. If you’re upgrading from Bamboo 8.x or a previous 9.x release, check out the list of added, deprecated, and removed support for various platforms in the Bamboo 9.2 LTS change log .
Additionally, you may want to take a look at the following related pages:
For information about what the latest stable release of Bamboo supports, see Supported platforms.
For the complete list of end-of-support announcements, see End-of-support announcements for Bamboo.
How to upgrade Bamboo
See the Bamboo upgrade guide for a complete walk-through of the upgrade process that includes descriptions of all the available upgrade paths, prerequisites, and methods.